咕嘿嘿poi 2022-08-08 21:05 采纳率: 59.1%
浏览 22
已结题

如何修改javascript只有特定的标签生效?

下面的HTML中应该是只有 id="div1" 下的a标签会产生效果,但是测试了下是所有a标签都会变化...
如何修改javascript使得只有id="div1" 下的a标签会有变化而不是所有的a标签都产生效果?

img

img


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>云标签代码</title>

<style>
#div1 {position: relative;width: 100%;height: 260px;margin: 0 auto;overflow: hidden;box-shadow: 0 0 50px #8e8e8e;-webkit-box-shadow: 0 0 50px #8e8e8e;-moz-box-shadow: 0 0 50px #8e8e8e;}
#div1 a {position: absolute;color: #8e8e8e;text-decoration: none;top: 260px;display: block;border: #8e8e8e 1px solid;box-shadow: 0 0 5px #8e8e8e;-webkit-box-shadow: 0 0 5px #8e8e8e;-moz-box-shadow: 0 0 5px #8e8e8e;background: #fff;filter: alpha(opacity: 30);opacity: 0.3;font-size: 14px;padding: 3px 5px;font-family: arial;}
#div1 a:hover {filter: alpha(opacity: 100);opacity: 1;font-weight: bold;font-size: 16px;}
</style>

<script>
    window.onload = function() {
    var oDiv = document.getElementById('div1');
    var aA = document.getElementsByTagName('a');
    var i = 0;
    for (i = 0; i < aA.length; i++) {
        aA[i].pause = 1;
        aA[i].time = null;
        initialize(aA[i]);
        aA[i].onmouseover = function() {
            this.pause = 0;
        };
        aA[i].onmouseout = function() {
            this.pause = 1;
        };
    }
    setInterval(starmove, 50);

    function starmove() {
        for (i = 0; i < aA.length; i++) {
            if (aA[i].pause) {
                domove(aA[i]);
            }
        }
    }

    function domove(obj) {
        if (obj.offsetTop <= -obj.offsetHeight) {
            obj.style.top = oDiv.offsetHeight + "px";
            initialize(obj);
        } else {
            obj.style.top = obj.offsetTop - obj.ispeed + "px";
        }
    }

    function initialize(obj) {
        var iLeft = parseInt(Math.random() * oDiv.offsetWidth);
        var scale = Math.random() * 1 + 1;
        var iTimer = parseInt(Math.random() * 1500);
        obj.pause = 0;

        obj.style.fontSize = 12 * scale + 'px';

        if ((iLeft - obj.offsetWidth) > 0) {
            obj.style.left = iLeft - obj.offsetWidth + "px";
        } else {
            obj.style.left = iLeft + "px";
        }
        clearTimeout(obj.time);
        obj.time = setTimeout(function() {
            obj.pause = 1;
        }, iTimer);
        obj.ispeed = Math.ceil(Math.random() * 4) + 1;
    }
};
</script>

</head>
<body>

<p><a>555</a></p>
<p><a>666</a></p>
<p><a>777</a></p>
<p><a>888</a></p>
<p><a>555</a></p>

<div id="div1">
    <a href="#" >知识决定一切</a>
    <a href="#" >好好学习</a>
    <a href="#" >寻龙诀</a>
</div>
</body>
</html>
  • 写回答

1条回答 默认 最新

  • WEB届的阿猫阿狗 2022-08-08 21:55
    关注

    var aA = oDiv.getElementsByTagName('a');

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月16日
  • 已采纳回答 8月8日
  • 创建了问题 8月8日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!