十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
JS是单线程执行,有两种可能改变执行顺序。
创新互联:于2013年创立为各行业开拓出企业自己的“网站建设”服务,为1000+公司企业提供了专业的网站设计制作、网站制作、网页设计和网站推广服务, 按需网站制作由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。
1、在页面的某个地方加上script来修改执行顺序,比如一段JS代码是一起执行,要修改一部分代码的执行顺序,那吧那段代码单独抽取出来,放到你想要的位置。
2、使用定时器,setTimetou等等方法。
通常我们将网页的样式和内容分开,样式放在css文件,内容放在html文件,当html文件需要用到样式的时候,直接引用css中定义的样式就可以了。其实JavaScript也能使用css文件或直接改变样式的属性来动态的改变网页的样式。
1、JavaScript设置内联样式
改变样式最直接的方法就是改变元素节点的style属性。如:
myElement.sytle.color = “red”;
myElement.sytle.left = “40px”;
myElement.sytle.backgroundRepeat = “repeat-x”;
JavaScript设置内联样式时,采用和css设置样式一样的风格。如设置myElement的color属性时,我们可以赋值任何在css中可以用的值,所以这里除了可以使用”red”,还可以使用”blue”, ”yellow”或十六进制的”#ff0000”。
另外用JavaScript改变网页的属性还需要注意2点:
l JavaScript中采用驼峰命名法:在css中,属性名中的单词之间是用横杠隔开,如font-weight, background-color。但在JavaScript中,横杠可能被认为是减号,所以采用驼峰命名法,单词之间不用横杠,如font-weight在JavaScript中应该写成fontWeight;而background-color写成backgroundColor。
l JavaScript中属性值为字符串:在css中,属性值都写在双引号中,即要用字符串来给css相关属性赋值,同样当属性值有单位时,我们需要将单位也写在字符串中。
2、JavaScript设置外部样式
当你需要改变的样式已经在css文件中定义了,我们也可以用JavaScript直接用定义好的css样式。如下格式:
myElement.className = “someCSSclass”;
同样需要注意几点:
l 不要将className写成class,因为class是JavaScript保留的关键字,我们不能使用。
l 将定义在css中的样式直接赋值给className,就能改变myElement元素的样式。
l 当要删除元素的样式,可以给className属性赋值为空。如:
myElement.className = “”;
教程网 站-秒秒学上的JavaScript课程有一个章节专门讲解JavaScript改变样式的内容,可以看看,希望对你有帮助。
javascript完整代码如下:
script type="text/javascript"
window.onload = function () {
var uls = document.getElementsByTagName("ul");//遍历ul
for (var i = 0; i uls.length; i++) {
var a = uls[i].getElementsByTagName("a");//遍历ul中的A标记
for (var j = 0; j a.length; j++) {
a[j].onclick = function () {//A标记点击事件
//修改ul的class
this.parentElement.parentElement.className = "nav nav-list in";
}
}
}
}
/script
参考如下:
input type="text"
div id="divShow" style="display:none;position:absolute;"显示的内容;/div
display:none,表示此层隐藏;
position:absolute,表示此层的为绝对位置,方便后期进行绝对定位
添加事件,完成效果;
script type="text/javascript"
function showDiv(obj) {
// 保存元素;
var el = obj;
// 获得元素的左偏移量;
var left = obj.offsetLeft;
// 获得元素的顶端偏移量;
var top = obj.offsetTop;
// 循环获得元素的父级控件,累加左和顶端偏移量;
while (obj = obj.offsetParent) {
left += obj.offsetLeft;
top += obj.offsetTop;
}
// 设置层的坐标并显示;
document.all.divShow.style.pixelLeft = left;
// 层的顶端距离为元素的顶端距离加上元素的高;
document.all.divShow.style.pixelTop = top + el.offsetHeight;
document.all.divShow.style.display = "block";
}
/script
style
#divShow
{
width:150px;
height:180px;
border-width:thin;
background:yellow;
}
/style
input type="text" onfocus="showDiv(this);"
div id="divShow" style="display:none;position:absolute;"显示的内容;/div
注意:
offsetLeft和OffsetTop不是获得元素和页面的距离,只是获得元素和父元素的的距离,所以要进行while循环一层层累加距离,最后得到元素和页面之间的距离
层次关系:本元素-父元素-……body-null,当为null时,退出while循环。
最终效果如下:
script
var a; //变量必须设为全局的
$('#a').click(function(){
a='初始值';
t();//调用方法
})
function t(){
a='修改值';
}
/script
先用js获取到div的内容
document.getElementById('div').innerHTML;
直接赋值给对象
document.getElementById('div').innerHTML="你好,请采纳!";