我想实现慕课网的效果(课外),我觉得只要稍加修改不报错实现就好,很好奇,还是想老师纠错
1.二维码效果完全没有
2.字与图片切换只有最后一个按钮有效
3.无法实现切换的字都不一样,如果问题二解决了,只能全部换成字“买”
4.如果想第三个按钮点击时二维码与第三个按钮平行,第四个按钮点击时二维码与第四个按钮平行,怎么写代码
5.写代码for循环有多个时,变量是否能全部写成i?(我这里写的都不一样)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <!doctype html> < html > < head > < meta charset = "utf-8" > < title >无标题文档</ title > < style > *{margin: 0;padding: 0;} body{background-color: blue;} .box{position: fixed;padding: 5px 10px;top: calc(50% - 69px);right: 0;background-color: white;} .anniu{margin: 10px auto;background-image: url("anniu.jpg");width: 20px;height: 20px;cursor: pointer; text-align: center;line-height: 20px;font-size: 14px;} .erweima{position: absolute;bottom: 0;right: 40px;background-image: url("erweima.jpg");width: 160px;height: 200px;} </ style > < style > .erweima{transform-origin: 100% 100%;transition: all 1s;} .erweima_animate_init{opacity: 0;transform: scale(0);} .erweima_animate_done{opacity: 1;transform: scale(1);} </ style > </ head > < body > < div class = "box" > < div class = "anniu zi1" ></ div > < div class = "anniu zi2" ></ div > < div class = "anniu zi3" ></ div > < div class = "anniu zi4" ></ div > < div class = "erweima erweima_animate_init" ></ div > </ div > < script > var shuzu=[".zi1",".zi2",".zi3",".zi4"]; for(var i=2;i< shuzu.length ;i++){ var target = document .querySelector(shuzu[i]); target.onmouseover = function (){ var erweima = document .querySelector("erweima"); var classanniu = erweima .getAttribute("class"); classanniu.setAttribute("class",classanniu.replace('_animate_init','_animate_done')); } } for(var j = 2 ;j<shuzu.length;j++){ var mubiao = document .querySelector(shuzu[j]); target.onmouseout = function (){ var erweima = document .querySelector("erweima"); var classanniu = erweima .getAttribute("class"); classanniu.setAttribute("class",classanniu.replace('_animate_done','_animate_init')); } } for(var d = 0 ;d<shuzu.length;d++){ var zi = document .querySelector(shuzu[d]); zi.onmouseover = function (){ zi.style.backgroundImage = "none" ; zi.innerHTML = "买" ; } } for(var d = 0 ;d<shuzu.length;d++){ var zi = document .querySelector(shuzu[d]); zi.onmouseout = function (){ zi.style.backgroundImage = "url('anniu.jpg')" ; zi.innerHTML = "" ; } } </script> </ body > </ html > |
27
收起
正在回答
2回答
同学你好,课外知识需要自己去拓展延伸,根据课程学习过的知识去实现,这样才能提升技能。另外这些问题都涉及到作用域的问题,给你举了一个修改示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | for (var i = 2; i < shuzu.length; i++) { (function(i) { var target = document.querySelector(shuzu[i]); target.onmouseover = function() { var erweima = document.querySelector(".erweima"); var classanniu = erweima.getAttribute("class"); erweima.setAttribute("class", classanniu.replace('_animate_init', '_animate_done')); } target.onmouseout = function() { var erweima = document.querySelector(".erweima"); var classanniu = erweima.getAttribute("class"); erweima.setAttribute("class", classanniu.replace('_animate_done', '_animate_init')); } })(i) } |
这边测试是可以实现二维码显示隐藏效果的,因为没有图片,使用文字代替了:
同学静下心来一点一点的去修改完善,相信自己可以实现的,如果还是存在问题,建议复习一下作用域课程以及后面的练习,对理解也有一定的帮助:
https://class.imooc.com/lesson/788#mid=19788
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧