一文带你解读​JavaScript的基本用法

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

JavaScript的基本用法

1.如何使用Js脚本

1).引入Js文件

在头部标签中导入脚本标签并指明脚本文件路径

<head><script src="XXX.js"></script></head>

2).标签中使用

<body><script >javascript 语句</script></body>
<head><script >javascript 语句</script></head>

2.数据类型

JavaScript的数据类型分为:

string
number
boolean
array
object
null
undefined

3.注释

1).单行注释

以“//”开头,后面接注释语句,只能注释一行

2).多行注释

/* 注释语句,可注释多行 */

4.特殊符号

\n 换行
\t 制表符 
\b 空格 
\r 回车 
\f 换页符
\\ 反斜杠 
\' 单引号
\" 双引号
\0 x 八进制代码x表示的字符(n是0到7中的一个八进制数字)
\x x 十六进制代码x表示的字符(n是0到F 中的一个十六进制数字)
\u x 十六进制代码x表示的Unicode字符(n是0到F 中的一个十六进制数字)

5.变量声明

1).Var声明

var ss='fsdf'  外部声明的变量可在全局使用
var ss        也可以不声明值,也不会产生错误,唯一的遗憾是会产生变量提升

2).Const 声明

const ss=123   不存在变量提升,可生成块级作用域 ,常用于声明常量,声明后必须赋值

3).Let 声明

let ss=123   不存在变量提升,可生成块级作用域,常用于声明变量,

6.控制结构语句

1).If ……Else

var aa=12
if(aa>3){console.log(1)}
else{alert(1)}

可以看出与我们的Python语句略有不同。

2).Do…..While

var i=1
do
 {
 i++;
 console.log(i);
 }
while(i<5)

3).While

var i=1
while(i<5){
    i++;
    console.log(i)
}

4).For

for(let i=1;i<6;i++){
    console.log(i)
}

5).For….In…

#打印了document对象的所有方法
    for(y in document)
        {
            console.log(y)
        }

6.Break、Continue

break    立即终止循环
continue 退出当前循环进入下一个循环

7).标签语句

指的是标签后面的语句可由判断结果自行决定什么时候结束

var i=0
label:while(i<10){
    i++;
    if(i==5){
        break label;
}
    else{
        console.log(i)
}
}

8).With语句

相当于Python中的上下文管理器

var aa='fasdffsa'
        with(aa){
            console.log(aa)
        }

9).Switch语句

var aa=[1,2,3]
    switch(aa){
        case 1:console.log(1);
        break;
        case 2:console.log(2);
        break;
        case 3:console.log(3);
        break;
        default:console.log('fas');
}

10).For….of

for(let val of iterable){
console.log(val)
}

11).For each ….. in

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
  sum += item;
}
print(sum); // 输出"26",也就是5+13+8的值




obj.forEach(function(val,item,array){
      array[item]=val
})

总结

这篇文章主要结束了JavaScript的导入、数据类型、注释、变量和控制语句。下一篇文章,我们继续介绍JavaScript,敬请期待!

盘点JavaScript中5个常用的对象

大家好,我是IT共享者,人称皮皮。

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

JavaScript对象

在JavaScript中有许多有用的对象,它们可以用来实现很多功能,除了我们之前接触到的,还有以下几种:

Date   日期
RegExp 正则
Error  错误

接下来我们就来具体了解下它们都有哪些用处:

1).Array对象

它就是我们熟知的数组对象了,它可以储存许多值并用下标访问,常见操作如下:

盘点JavaScript中5个常用的对象

2).Boolean对象

返回该对象的源代码。
b.toSource()




把逻辑值转换为字符串,并返回结果。
b.toString()




返回 Boolean 对象的原始值。
b.valueOf()

3).Date对象

这个对象主要对时间的操作,我们可以通过这个对象获取并且设置时间,如图:

盘点JavaScript中5个常用的对象

3).Math对象

这个对象就好比我们Python中的数学模块中的方法一样,两者了解一样即可,如图:

盘点JavaScript中5个常用的对象

4).Number对象

主要就是数字对象的一些操作,比较简单,方法不多,如图:

盘点JavaScript中5个常用的对象

5).String对象

主要是对字符串对象进行操作,比如字符串拼接,分割等,这是我们比较常用的对象,它的用法如下:

盘点JavaScript中5个常用的对象

总结

这篇文章主要介绍了JavaScript的对象知识。下一篇文章,我们继续介绍JavaScript,敬请期待!

一文解读JavaScript中的文档对象(DOM)

大家好,我是IT共享者,人称皮皮。

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.文档对象(DOM)

1).Document对象

这是我们用的最普遍的一个文档对象了,专门用来操作DOM节点时用。

1)).获取元素

document.getElementById()           #通过id查找HTML元素
document.getElementsByName()        #通过name查找HTML元素
document.getElementsByTagName()     #通过标签名查找HTML元素
document.getElementsByClassName()   #通过类名查找HTML元素 
document.querySelector(".h")        #第一个类名为 "h" 的元素
document.querySelectorAll("div.no, div#h") #所有class为"no"或者id为"h"的div元素
document.body          #获取body标签
document.documentElement   #获取html标签

2)).获取网页内容

document.cookie        #网页cookie
document.domain        #文档的域名
document.lastModified  #文档被最后修改的日期和时间
document.referrer      #载入当前文档的文档的URL
document.title         #当前文档的标题
document.URL           #当前文档的URL
document.doctype       #当前文档的doctype
document.baseURI       #当前文档的绝对URI
document.documentMode   #浏览器使用的模式
document.documentURI    #文档的URI
document.implementation #DOM实现
document.inputEncoding  #文档的编码(字符集)
document.readyState     #文档的(加载)状态
document.strictErrorChecking    #是否强制执行错误检查

3)).文档写入

document.write('hello world')   向文档写入文本
document.writeln('hello world') 向文档写入文本并换行

4)).获取集合

document.all        #所有html元素
document.anchors    #所有Anchor引用
document.forms      #所有的表单引用
document.images     #所有的图片引用
document.links      #所有的超链接引用
document.scripts    #所有的脚本引用
document.embeds     #所有的流媒体引用

5)).获取节点

childNodes          #获取子节点的集合 ,返回数组 ,并把换行和空格也当成是节点信息。
children            #获取子节点的集合 ,返回数组   
firstChild          #获取第一个子元素  并把换行和空格也当成是节点信息
firstElementChild   #获取第一个子节点
lastChild           #获取最后一个子节点 并把换行和空格也当成是节点信息
lastElementChild    #获取最后一个子节点
parentNode          #获取父节点
parentElement       #获取父节点(IE)
offsetParent        #获取所有父节点  对应的值是body下的所有节点信息
previousSibling         #获取上一个兄弟节点  匹配字符,包括换行和空格,而不是节点
previousElementSibling  #获取上一个兄弟节点  直接匹配节点
nextSibling             #获取下一个兄弟节点  匹配字符,包括换行和空格,而不是节点
nextElementSibling      #获取下一个兄弟节点  直接匹配节点
ownerDocument           #元素的根节点

这里我们获取到了所有的Div元素,我们可以针对性的获取一个ID下的Div的子元素以及它的兄弟和父,子元素,如下:

6)).创建节点

我们可以自定义节点并添加值,不过要将它添加到文档中去,所以必须添加节点,一般和下方的增加节点配套使用。

document.createElement(标签)  #创建HTML元素
document.createTextNode(文本) #给文档添加文本
document.createComment(文本)  #创建一个注释节点
document.createDocumentFragment() #创建文档粉碎节点

7)).增加节点

appendChild(节点) #节点被添加到元素的末尾
insertBefore(a,b) #a节点会插入b节点的前面

8)).删除节点

removeChild(节点名)  #被移除的节点仍在文档中,只是文档中已没有其位置了

9)).替换节点

replaceChild(插入的节点,被替换的节点)

10)).复制节点

a.cloneChild() #复制a节点,复制出来的节点作为返回值为true时,则a元素后代也一并复制。否则,仅复制a元素本身

11)).节点属性

#节点类型 nodeType 有三种情况
#1.元素节点  2.属性节点  3.文本节点


#节点名称 nodeName 


#节点值 nodeValue 
#元素节点没节点值,为null 
#文本节点的节点值就是文本
#属性节点的节点值就是该属性值


#节点属性获取
a.width
a['width']
a.gerAttribute(属性名)  返回指定的属性值
a.gerAttributeNode(属性名) 返回指定的属性节点
节点属性设置
a.width=400
a['width']=400
a.attributes['width']=400
a.setAttribute('width',400) 添加指定的属性
a.setAttributeNode(b) 添加指定的属性节点


#节点属性删除
a.removeChild(子节点)    从元素中移除子节点
a.removeAttribute(属性)  从元素中移除指定属性
a.removeAttributeNode(属性) 移除指定的属性节点,并返回被移除的节点


a.id 获取当前元素的id
a.className  获取当前元素的class
a.classList  获取当前元素的class列表


a.accessKey='w'    设置或返回元素的快捷键
a.namespaceURI     返回指定节点的命名空间的 URI
a.dir              设置或返回元素的内容是否可编辑
a.normalize()      合并元素中相邻的文本节点,并移除空的文本节点
a.tabIndex='3'     设置或返回元素的tab键控制次序
a.tagName          返回元素的标签名
a.textContent      设置或返回节点及其子代的文本内容
a.title            设置或返回元素的标题属性
a.item(num)        返回节点列表中位于指定下标的节点
a.length           返回节点列表中的节点数

12)).获取元素文本

a.innerHTML  获取或者设置对象内的HTML
a.innerText  获取或者设置对象内的文本
a.outerHTML  获取或者设置对象外的HTML
a.outerText  获取或者设置对象外的文本
a.value      获取或者设置表单元素的值

总结

这篇文章主要介绍了JavaScript的文档对象。下一篇文章,我们继续介绍JavaScript,敬请期待!

一文解读JavaScript事件对象和表单对象

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.事件对象(Event)

1).事件对象常量

bubbles         事件是否是起泡事件类型 
cancelable      事件是否可确定可取消的默认动作
currentTarget   事件监听器触发该事件的元素 
eventPhase      事件传播的当前阶段 
target          触发此事件的元素(事件的目标节点),srcElement(IE)
timeStamp       事件生成的日期和时间
type            当前Event对象表示的事件的名称 
initEvent()     初始化新创建的 Event 对象的属性
preventDefault() 不执行默认动作
stopPropagation()   停止冒泡 cancelBubble
x,y             元素的 x 坐标和 y 坐标
returnValue     设置或获取事件的返回值
fromElement  在IE中用于mouseover和mouseout 事件,可以引用移出鼠标的元素。
toElement  在IE中用于mouseover和mouseout 事件,该属性引用移入鼠标的元素。
returnValue 设置或获取事件的返回值
keyCode(IE) 键盘码 which()  charCode
offsetX,offsetY 事件在源元素的中的x坐标和y坐标。

这在后面的其它操作中我都有举例子,大家可以仔细看看。

2).键盘鼠标事件

altKey          判断"ALT" 是否被按下 
button          判断哪个鼠标按钮被点击 
clientX         判断鼠标指针的水平坐标
clientY         判断鼠标指针的垂直坐标
ctrlKey         判断"CTRL" 键是否被按下
keyIdentifier   按键的标识符  
keyLocation     按键在设备上的位置 
metaKey         判断"meta" 键是否被按下
relatedTarget   与事件的目标节点相关的节点
screenX         判断鼠标指针的水平坐标
screenY         判断鼠标指针的垂直坐标
shiftKey        判断"SHIFT" 键是否被按下

这个在后面也会提到,比如获取鼠标坐标:

2.表单对象

1).Form对象

document.forms['表单名']['text'].value #获取表单中的文本框的值
acceptCharset       服务器字符集 
action              设置或返回表单的action
enctype             设置或返回表单用来编码内容的MIME类型 
length              返回表单中的元素数目
method              设置或返回将数据发送到服务器的 HTTP 方法
name                设置或返回表单的名称
target              设置或返回表单提交结果的Frame或Window

2).Button对象(submit,hidden与它方法差不多)

b.accessKey                 设置或返回访问按钮的快捷键
b.alt                       设置或返回当浏览器无法显示按钮时供显示的替代文本 
b.disabled=true|false       设置或返回是否禁用按钮
b.form                      返回对包含该按钮的表单对象的引用
b.id                        设置或返回按钮的 id
b.name                      设置或返回按钮的名称 
b.tabIndex='3'              设置或返回按钮的 tab 键控制次序 
b.type                      返回按钮的表单元素类型 
b.value                     设置或返回在按钮上显示的文本

3).Checkbox 对象(Radio与它方法差不多)

和上面的对象差不多,唯一不同的便是多了一个默认值选中值:“defaultChecked”。

4).Select 对象

s.options  返回下拉列表数组
s.selectedIndex=num    设置或返回下拉列表中被选选项的索引号
s.multiple=true|false  设置或返回是否可有多个选项被选中
s.size                 设置或返回下拉列表中一次显示显示的选项数
s.add()       向下拉列表添加一个选项
s.remove()    从下拉列表中删除一个选项

总结

这篇文章主要介绍了JavaScript的事件对象和表单对象。下一篇文章,我们继续介绍JavaScript,敬请期待!

一文解读JavaScript中的事件知识

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.事件

1).鼠标事件

onclick     #鼠标单击  
ondblclick  #双击鼠标
onmousedown #鼠标按钮被按下。
onmousemove #鼠标被移动。
onmouseover #鼠标移到某元素之上。
onmouseout  #鼠标从某元素移开。
onmouseup   #鼠标按键被松开。

2).键盘事件

onkeydown #按键被按下
onkeypress #按键被按下并松开
onkeyup #按键被松开

3)框架事件

onabort 图像的加载被中断 
onerror 在加载文档或图像时发生错误
onload  页面或图像完成加载  
onresize 窗口或框架被重新调整大小
onscroll 滚动事件
onunload 退出页面

可以看到一会儿就滚动了这么多下。

4).表单对象

onblur 元素失去焦点 
onchange 文本域的内容被改变
onfocus 元素获得焦点
onreset 重置按钮
onselect 文本选中
onsubmit 确认提交

总结

这篇文章主要结束了JavaScript的事件知识。下一篇文章,我们继续介绍JavaScript,敬请期待!

盘点 JavaScript 中那些进阶操作知识(下篇)

相信做网站对 JavaScript 再熟悉不过了,它是一门脚本语言,不同于 Python 的是,它是一门浏览器脚本语言,而 Python 则是服务器脚本语言,我们不光要会 Python,还要会 JavaScript,因为它对做网页方面是有很大作用的。

大家好,我是 IT 共享者,人称皮皮。上篇文章给大家分享了盘点 JavaScript 中那些进阶操作知识(上篇),这篇文章继续来看看趴!

前言

相信做网站对 JavaScript 再熟悉不过了,它是一门脚本语言,不同于 Python 的是,它是一门浏览器脚本语言,而 Python 则是服务器脚本语言,我们不光要会 Python,还要会 JavaScript,因为它对做网页方面是有很大作用的。

1.Javascript 刷新页面

history.go(0) 
location.reload() 
location=location 
location.assign(location) 
document.execCommand('Refresh') 
window.navigate(location) 
location.replace(location) 
document.URL=location.href

2.Js 浏览器兼容问题

1).浏览器事件监听

function addEventhandler(target,type,fn,cap){
            if(target.addEventListener)               /*添加监听事件*/
              {       
                target.addEventListener(type,fn,cap)
                }
            else{
                 target.attachEvent('on'+type,fn)  /*IE 添加监听事件*/
               }
          }
       function removeEventhandler(target,type,fn,cap){
            if(target.removeEventListener)            /*删除监听事件*/
             {
                target.removeEventListener(type,fn,cap)
                }
            else{
                 target.detachEvent('on'+type,fn)    /*IE 删除监听事件*/
               }
          }

2).鼠标键判断

function bu(event)
{
var bt= window.button || event.button;
if (bt==2)
  {
  x=event.clientX
  y=event.clientY   
  alert("您点击了鼠标右键!坐标为:"+x+','+y)
  }
else if(bt==0)
  {
    a=event.screenX
    b=event.screenY
  alert("您点击了鼠标左键!坐标为:"+a+','+b)
  }
else if(bt==1)
  {
  alert("您点击了鼠标中键!");
  }
}

3).判断是否按下某键

function k(event)
{
var ke=event.keyCode || event.which
if(event.shiftKey==1)
  {
  alert('您点击了 shift');
  }
 alert(ke)alert(event.type)
}

4).网页内容节点兼容性

1)).网页可视区域宽高

var w=document.body.offsetWidth|| document.documentElement.clientWidth|| document.body.clientWidth;
var h=document.body.offsetHeight|| document.documentElement.clientHeight || document.body.clientHeight;

2)).窗体宽度高度 比可视区域要大

window.innerHeight - 浏览器窗口的内高度(以像素计) 
window.innerWidth - 浏览器窗口的内宽度(以像素计)

3)).页面滚动条距离顶部的距离

var t=document.documentElement.scrollTop || document.body.scrollTop

4)).页面滚动条距离左边的距离

var s=document.documentElement.scrollLeft || document.body.scrollLeft

5)).元素到浏览器边缘的距离

  function off(o){   #元素内容距离浏览器边框的距离(含边框)var l=0,r=0;
        while(o){
            l+=o.offsetLeft+o.clientLeft;
            r+=o.offsetTop+o.clientTop;
            o=o.offsetParent;
        }
        return {left:l,top:r};
    }

6)).获取滚动条高度

// 滚动条的高度
function getScrollTop() {
var scrollTop = 0;
if (document.documentElement && document.documentElement.scrollTop) {
        scrollTop = document.documentElement.scrollTop;
    }
else if (document.body) {
        scrollTop = document.body.scrollTop;
    }
return scrollTop;
}

7)).DOM 节点操作

function next(o){//获取下一个兄弟节点 if (o.nextElementSibling) {
            return o.nextElementSibling;
        } else{
            return o.nextSibling;
        };
    }
    function pre(o){//获取上一个兄弟节点 if (o.previousElementSibling) {
            return o.previousElementSibling;
        } else{
            return o.previousSibling;
        };
    }
    function first(o){//获取第一个子节点 if (o.firstElementChild) {
            return o.firstElementChild;//非 IE678 支持
        } else{
            return o.firstChild;//IE678 支持
        };
    }
    function last(o){//获取最后一个子节点 if (o.lastElementChild) {
            return o.lastElementChild;//非 IE678 支持
        } else{
            return o.lastChild;//IE678 支持
        };
    }

8)).窗口的宽高

document.body.scrollWidth||document.docuemntElement.scrollWidth;//整个网页的宽
document.body.scrollHeight||document.docuemntElement.scrollHeight;//整个网页的高

9)).屏幕分辨率的宽高

window.screen.height;//屏幕分辨率的高
window.screen.width;//屏幕分辨率的宽

10)).坐标

window.screenLeft;//x 坐标
window.screenX;//X 坐标
window.screenTop;//y 坐标
window.screenY;//y 坐标

11)).屏幕可用工作区宽高

window.screen.availHeight 
window.screen.availWidth

5).事件源获取

e.target || e.srcElement

6).行外样式

funtion getStyle(obj,name){
   if(obj.currentStyle){
      //IE
    return obj.currentStyle[name];
    }else{
    //Chrom,FF
   return getComputedStyle(obj,false)[name];
      }
 }

7).阻止事件冒泡函数封装

function pre(event){

           var e = event || window.event;

           if(e.stopPropagation){   // 通用方式阻止冒泡行为

               e.stopPropagation();

           }else{    //IE 浏览器

               event.cancelBubble = true;

           }

8).阻止浏览器默认行为(例如点击右键出来菜单栏)

function stop(event) {

     var e = event || window.event;

     if (e.preventDefault){

         e.preventDefault();   // 标准浏览器

     }else{

         e.returnValue = false; // IE 浏览器

     }

}

3.严格模式

"use strict"

4.判断变量类型

typeof  variable
instance  instanceof  object
instance.constructor== object
Object.prototype.toString.call(instance)

5.下载服务器端文件

<a href="http://somehost/somefile.zip" download="myfile.zip">Download file</a>

总结

这篇文章主要介绍了 JavaScript 的进阶操作命令!希望对大家的学习有所帮助。


人生苦短,我用Python!

盘点JavaScript中那些进阶操作知识(上篇)

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.进阶操作

这里列举了一些小编以前经常用到的一些例子以及一些经验,由于篇幅受限,这里我将会把部分执行结果的输出直接输入到代码下面。

1).浏览器输入

prompt('请输入') 返回一个字符串变量

2).浏览器输出

document.write('我被输出了') 返回一个字符串

3).浏览器弹框

alert('我是弹框')  返回一个字符串

4).浏览器交互

confirm("是否进入"); 返回一个比尔类型的值

5).控制台打印结果

console.log('显示在控制台的结果')

6).类型检查

typeof ss
ss instanceof string

7).转换为字符串

var ff=123
ff.toString()

8).转换为数字

parseInt(‘231fasd’) -->231  isNumeric 用来判断是否是数字
parseInt('df',num) --> num介于2~36之间,若省略则为10,若‘0x’开头,则为16,若小于2或大于36则为NAN
parseFloat('10') -->无法转换为数字将返回NaN,可通过isNan来判断是否为NaN

9).转换为原始对象

var ff=123
ff.ValueOf()

10).编解码函数

1))字符串编解码

escape(string)    # 编码
unescape(string)   #解码

2))URL编解码

encodeURI(URIstring)  #编码
decodeURI(URIstring)  #解码
encodeURIComponent(URIstring)   #把字符串编码为 URI 组件
decodeURIComponent(URIstring)   #解码一个编码的 URI 组件

11).Eval

可把里面的字符串当做Js代码来执行,犹如Python中的Eval。

eval("alert('fasd')")

12).Call

能够使用属于另一个对象的方法,可传多个参数,是经典的对象冒充方法。

function ss(a,b) {
    alert(a + this.val + b);
};
var o= new Object();
o.val = "123";
ss.call(o, "I am", "years old.");


output:
I am 123 years old

13).Apply

与Call差不多,前面是对象但是它后面的参数是一个数组。

function ss(a,b) {
    alert(a + this.val + b);
};
var o= new Object();
o.val = "123";
ss.apply(o, new Array("I am", "years old"));

14).Caller

返回一个对函数的引用,该函数调用了当前函数,caller 属性只有在函数执行时才有定义。

function aa() {
    if (aa.caller) {
       console.log(aa.caller);   
    } else {
        console.log("111");
     }
}
aa()
output: 111

15).Callee

返回正被执行的 Function 对象,表示对函数对象本身的引用,一般用在递归。

function ff(x){
    if(x==1)
{
        return 1;
}
    else{
        return x+arguments.callee(x-1)
}
}
ff(3);
output:6

总结

这篇文章主要介绍了JavaScript的进阶操作知识。下一篇文章,我们继续介绍JavaScript,敬请期待!

手把手教你利用JavaScript 获取任意网站图片链接

前言

大家好,我是IT共享者,人称皮皮。

妹纸图这个网站想必大家都非常熟悉了,老司机的天堂。小编第一次进表示身体逐渐变得空虚,表示一定要克制自己,远离这种正能量的网站。话不多说,今天带大家获取妹纸图上的图片链接。然后大家都懂得。

一、项目准备

360浏览器,仅此而已

二、项目目的

获取页面所有美女图片

三、项目步骤

1.打开浏览器,搜索图片,我们以美女图片为例:

画面太美,不忍直视。

2.打开浏览器控制台

F12,即可打开浏览器控制台,我们今天要做的是获取所有的图片链接,顺便查看下图片。如下图:

今天我们就是要在这里面获取到所有的图片链接,相信没接触过前端的人肯定对此一无所知,但是小编接下来讲过了之后你还是一无所知,那就是你的不对了。

3.控制台功能大揭秘

大家可能觉得这个地方没啥用处,啥都没有,还不如Element Network用处大;诚然前两者的确用处很大,可以用来分析网页结构和网页请求,但是我想说的是控制台的功能你永远不要小瞧了,因为它可以使你在开发过程中能快速的见到效果图,比如,你写个代码,但是你想看看它现在能否运行,一般的做法就是写个HTML+CSS然后将JavaScript嵌入到里面去,这样做显然太麻烦,而且你修改后还得在刷新才能浏览器中运行看到效果,到最后就是浏览器和编辑器频繁切换,影响开发速度和效率甚至占用多余的系统资源。于是,控制台应运而生,它使得我们可以轻松的使用JavaScript代码而无需再搭配HTML和CSS才能运行,一个Console统统搞定,这就是我们刚刚说的控制台。我们可以先来看看它的功能:

可以看到,它是有自动提示功能的,而且比任何三方IDE的都要全面,因为它是和浏览器配套使用的,而其它IDE则无法做到这么齐全,所以你可以看到有时候如果你想用某种方法它不会提示,那就只有一个原因,就是你用错了。

1).改变它的编辑状态

控制台输入:

![4](4.jpgdocument.body.contentEditable=true

在编辑状态下,我们的点击操作是没有任何作用的,也就是说只能修改,如果想还原,刷新一下浏览器即可。

2).定位特定元素

这里我们可以先看看我们要看的浏览器图片元素的信息,可以先打印出所有的图片 ,这里使用一个特殊符号:

我们可以看到,通过这个语法糖可以打印当前页面所有的图片信息,显示70,说明这个页面有70张图片,当小编再次滚动鼠标时发现图片数量就变多了,变成了136张图片,这说明它是Ajax加载的。

除了这种获取图片的方式外,还可以这样:

document.images

得到的结果和上面的一模一样,有了这几样的知识点积累,我们现在就可以轻松获取所有的图片链接了。

4.获取图片链接和图片名

这里我们要把获取到的图片添加到数组中,然后在遍历即可打印出所有的图片。

1).建立数组存放所有的图片

ab=document.images #获取当前页面所有图片
var aa=[]           #建立数组
for(const y of ab){    #建立const变量使得无法修改
    aa.push(y); #把图片装进数组
}

2).遍历数组打印图片链接

这里可以使用多种方法,小编一 一介绍。

1)).For …in

for(const a in aa){
    console.log(aa[a])
}

2)).For…of

for(const a of aa){
    console.log(a)
}

3)).ForEach

aa.forEach(function(val,item,array){
  console.log(val)
});

4)).Map

![10](10.jpgaa.map(function(val,item,array){
  console.log(val)
});

可以看到第四种方法和第三种方法差不多,但是它们还是有差别的,前者是没有返回值的,而后者有并且后者支持修改返回值。虽然我们打印出了图片链接,但是图片名字并没有打印出来,于是小编开始找图片名字:

发现它在Div标签里,于是小编开始找满足条件的Div:

document.querySelectorAll('div.img_tit')#精确找到所有类名为img_tit的Div
document.getElementsByClassName('img_tit')#找到所有类名为img_tit

然后我们先输出图片名再输出图片链接,这样就可以使用循环然后进行判断,如下图:

var a=0;
do{
  a++;
  if(a%2==0){
    console.log(aa[a])
}
    else{
    console.log(ac[a])
  }


}
while(a<ac.length)

可以看到按照顺序打印出了。另外,我们发现当我们打印出了这些结果值后感觉控制台都已经爆满了,我们想清空这些信息那该怎么办了?一行代码就能搞定啦。

当然,这项功能你可别指望它能在你控制台相当干净的时候起作用。看了这么多了我们再来看看图片的查看功能吧。

5.图片查看

希望上面的方法应该不会让读者眼花缭乱才是,因为Js是一门动态语言,所以它的骚操作实在是太多了,你懂的。言归正传,如果我们现在想快速查看某一张图片,那么怎么办呢?有人说单击它,我想告诉你的是,虽然这可以实现查看功能,但这是在被包裹的网页中查看,如果我们在单独的网页中查看了,比如说这样:

那我们要想只看这一张图片而不看其它的内容了,那又该怎么办了?最传统的方法:

点击红色箭头处,可以看到如下图:

感觉是不是就好多了,没有其它的东西干扰我们,专心致志的看图,多爽。但是我们开发者可不能这么做,因为太没技术含量了,我们要时时刻刻挑战自己;所以我决定用JS代码来查看这张图片。

我们可以先看看这个,代码如下:

function view(src,filename) {
                var link = document.createElement('a');#创建a标签
                link.setAttribute("download", filename);#设置download属性
                link.href = src;#设置href属性
                document.body.appendChild(link);#将a标签添加到网页主体中
                link.click();
                document.body.removeChild(link);#删除a标签
            }
view('https://p0.ssl.qhimgs1.com/bdr/326__/t0160c8456511be3c4e.jpg','t0160c8456511be3c4e.jpg')

可以看到我们成功在浏览器中查看了这张图片。

四、总结

突然发现小编还是比较有才的,这都能被小编捕捉到,不过还是不能太得意,以免翻车。另外,如果大家想在自家服务器上添加图片下载功能,超简单的,一行代码搞定。

<a href="http://localhost:8080/12.jpg" download="12.jpg">点我下载</a>

这样就能生成一个下载图片的点击链接了。

一篇文章帮助你理解跑马灯的滚动原理

走马灯效果其实就是利用<marquee>标签进行图片和文字滚动,设置的样式不一样,滚动的效果就不一样,实现“走马观花”的效果。

一、滚动方式

1. 普通滚动

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>


    </body>
  <marquee>这里是您要填的内容</marquee>
</html>
一篇文章帮助你理解跑马灯的滚动原理

1.1 文字碰到左边就会停止

<marquee behavior="slide">这里是您要填的内容</marquee>
一篇文章帮助你理解跑马灯的滚动原理

1.2 文字碰到右边就会停止

<marquee behavior=”slide” direction=”right”>这里是您要填的内容</marquee>

一篇文章帮助你理解跑马灯的滚动原理

2.图片滚动

2.1 预设滚动

图片滚动到右边界,自动再从左边滚动。

<marquee behavior="scroll"><img src="img/border.png"></marquee>
一篇文章帮助你理解跑马灯的滚动原理

2.2 来回滚动

<marquee behavior="alternate"><img src="img/border.png"></marquee>
一篇文章帮助你理解跑马灯的滚动原理

2.3 滚动的方向

向左滚动

<marquee direction="left"><img src="img/border.png"></marquee>

向右滚动

<marquee direction="right"><img src="img/border.png"></marquee>

向下滚动

<marquee direction="down"><img src="img/border.png"></marquee>

向上滚动

<marquee direction="up"><img src="img/border.png"></marquee>
一篇文章帮助你理解跑马灯的滚动原理

二、参数

1. 设定滚动次数(可自行更改参数)

<marquee loop="2">这里是您要填的内容</marquee>

2. 设定背景颜色 (16进位颜色或文字输入)

<marquee bgcolor="#??????">这里是您要填的内容</marquee>

3. 设定滚动宽度

为了方便辨别,这里加上bgcolor属性。

<!doctype html>
<html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>


        <body>
        <div >
            <p>初始化</p>
            <marquee bgcolor="red"; >这里是您要填的内容</marquee>
        </div>
        <div>
            <p>设置高度</p>
            <marquee bgcolor="aqua";width="380">这里是您要填的内容</marquee>
        </div>


</body>
</html>
一篇文章帮助你理解跑马灯的滚动原理

4. 设定滚动高度

<!doctype html>
<html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>


        <body>
        <div >
            <p>初始化</p>
            <marquee bgcolor="red"; >这里是您要填的内容</marquee>
        </div>
        <div>
            <p>设置高度</p>
            <marquee bgcolor="aqua"; height="38">这里是您要填的内容</marquee>
        </div>


</body>
</html>
一篇文章帮助你理解跑马灯的滚动原理

5. 设定滚动速度 (可自行更改参数)

<marquee scrollamount="30">这里是您要填的内容</marquee>
一篇文章帮助你理解跑马灯的滚动原理

三、总结

本文以html为基础,主要介绍了常见的效果(跑马灯)的滚动原理,详细介绍了三种常见的滚动以及其相关属性,以及对设置参数时遇到的难题一一解答,希望能够帮助你学习。

一篇文章带你了解HTML的网页布局结构

大家好,我是IT共享者,人称皮皮。这篇我们来讲讲CSS网页布局。

一、网页布局

网页布局有很多种方式,一般分为以下几个部分:头部区域、菜单导航区域、内容区域、底部区域


1. 头部区域

头部区域位于整个网页的顶部,一般用于设置网页的标题或者网页的 logo:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 项目(runoob.com)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
  margin: 0;
}


/* 头部样式 */
.header {
  background-color: #f1f1f1;
  padding: 20px;
  text-align: center;
}
</style>
</head>
<body>


<div class="header">
  <h1>头部区域</h1>
</div>


</body>
</html>


2. 菜单导航区域

菜单导航条包含了一些链接,可以引导用户浏览其他页面:

/* 导航条 */
.topnav {
  overflow: hidden;
  background-color: #333;
}
 
/* 导航链接 */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
 
/* 链接 - 修改颜色 */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}

3. 内容区域

内容区域一般有三种形式:

  • 1 列:一般用于移动端。
  • 2 列:一般用于平板设备。
  • 3 列:一般用于 PC 桌面设备。

不相等的列

不相等的列一般是在中间部分设置内容区域,这块也是最大最主要的,左右两次侧可以作为一些导航等相关内容,这三列加起来的宽度是 100%。

例:

.column {
  float: left;
}
 
/* 左右侧栏的宽度 */
.column.side {
  width: 25%;
}
 
/* 中间列宽度 */
.column.middle {
  width: 50%;
}
 
/* 响应式布局 - 宽度小于600px时设置上下布局 */
@media screen and (max-width: 600px) {
  .column.side, .column.middle {
    width: 100%;
  }
}

4. 底部区域

底部区域在网页的最下方,一般包含版权信息和联系方式等。

.footer {
  background-color: #F1F1F1;
  text-align: center;
  padding: 10px;
}

二、响应式网页布局

通过以上等学习我们来创建一个响应式等页面,页面的布局会根据屏幕的大小来调整:

案例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>项目</title>
<style>
* {
  box-sizing: border-box;
}
 
body {
  font-family: Arial;
  padding: 10px;
  background: #f1f1f1;
}
 
/* 头部标题 */
.header {
  padding: 30px;
  text-align: center;
  background: white;
}
 
.header h1 {
  font-size: 50px;
}
 
/* 导航条 */
.topnav {
  overflow: hidden;
  background-color: #333;
}
 
/* 导航条链接 */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
 
/* 链接颜色修改 */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}
 
/* 创建两列 */
/* Left column */
.leftcolumn {   
  float: left;
  width: 75%;
}
 
/* 右侧栏 */
.rightcolumn {
  float: left;
  width: 25%;
  background-color: #f1f1f1;
  padding-left: 20px;
}
 
/* 图像部分 */
.fakeimg {
  background-color: #aaa;
  width: 100%;
  padding: 20px;
}
 
/* 文章卡片效果 */
.card {
  background-color: white;
  padding: 20px;
  margin-top: 20px;
}
 
/* 列后面清除浮动 */
.row:after {
  content: "";
  display: table;
  clear: both;
}
 
/* 底部 */
.footer {
  padding: 20px;
  text-align: center;
  background: #ddd;
  margin-top: 20px;
}
 
/* 响应式布局 - 屏幕尺寸小于 800px 时,两列布局改为上下布局 */
@media screen and (max-width: 800px) {
  .leftcolumn, .rightcolumn {   
    width: 100%;
    padding: 0;
  }
}
 
/* 响应式布局 -屏幕尺寸小于 400px 时,导航等布局改为上下布局 */
@media screen and (max-width: 400px) {
  .topnav a {
    float: none;
    width: 100%;
  }
}
</style>
</head>
<body>


<div class="header">
  <h1>我的网页</h1>
  <p>重置浏览器大小查看效果。</p>
</div>


<div class="topnav">
  <a href="#">链接</a>
  <a href="#">链接</a>
  <a href="#">链接</a>
  <a href="#" style="float:right">链接</a>
</div>


<div class="row">
  <div class="leftcolumn">
    <div class="card">
      <h2>文章标题</h2>
      <h5>xx 年xx月 xx日</h5>
      <div class="fakeimg" style="height:200px;"><img src="img/bird.png"></div>
      <p>文本...</p>
      <p>当热诚变成习惯,恐惧和忧虑即无处容身。缺乏热诚的人也没有明确的目标。热诚使想象的轮子转动。一个人缺乏热诚就象汽车没有汽油。
      善于安排玩乐和工作,两者保持热诚,就是最快乐的人。热诚使平凡的话题变得生动。!</p>
    </div>
    <div class="card">
      <h2>文章标题</h2>
      <h5>xx 年 xx 月xx日</h5>
      <div class="fakeimg" style="height:200px;"><img src="img/border.png"></div>
      <p>文本...</p>
      <p>一切事无法追求完美,唯有追求尽力而为。这样心无压力,出来的结果反而会更好!</p>
    </div>
  </div>
  <div class="rightcolumn">
    <div class="card">
      <h2>关于我</h2>
      <div class="fakeimg" style="height:100px;"></div>
      <p>6666</p>
    </div>
    <div class="card">
      <h3>热门文章</h3>
      <div class="fakeimg"><img src="img/fy2_wp.png">\</div>
    
    </div>
    <div class="card">
      <h3>关注我</h3>
      <p>本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,
      不得用于任何商业用途,否则后果自负,请支持购买正版软件!如侵犯到您的权益,请及时通知我们,我们会及时处理。


声明:为非赢利性网站 不接受任何赞助和广告。</p>
    </div>
  </div>
</div>


<div class="footer">
  <h2>底部区域</h2>
</div>


</body>
</html>

三、总结

本文主要介绍了Html的网页布局结构,如何去了解网络的布局,介绍了常见的移动设备的三种网页模式,最后通过一个小项目,总结之前讲解的内容。

代码很简单,希望可以帮助你学习。