知识点

  1. 重读度高的代码要考虑能否封装
  2. 凡是CSS属性,必须使用style修改。自身标签属性不需要。

运行效果

鼠标移动到下面不同的图片上,上面的图片会发生变化。

代码

封装实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>*{margin: 0;padding: 0;list-style: none;}#box{border: 1px solid #cccccc;width: 650px;height: 150px;padding-top: 360px;margin: 100px auto;background: url("images/阿鲁1.gif") no-repeat center 30%;background-size: 60% 60%;}ul{display: flex;justify-content: center;align-items: center;cursor: pointer;}</style>
</head>
<body>
<div id="box"><ul><li id="li01"><img src="data:images/阿鲁1.gif" alt=""></li><li id="li02"><img src="data:images/阿鲁2.gif" alt=""></li><li id="li03"><img src="data:images/阿鲁3.gif" alt=""></li><li id="li04"><img src="data:images/阿鲁4.gif" alt=""></li><li id="li05"><img src="data:images/阿鲁5.gif" alt=""></li></ul>
</div>
<script>window.onload = function (ev) {// 1. 获取标签var li01 = $('li01'),li02 = $('li02'),li03 = $('li03'),li04 = $('li04'),li05 = $('li05');var box = $('box');// 2. 接听鼠标事件liLis(li01,1);liLis(li02,2);liLis(li03,3);liLis(li04,4);liLis(li05,5);};/*** 根据id获取标签* @param {string}id*/function $(id) {return typeof id === 'string' ? document.getElementById(id) : null ;}/*** 改变传入的标签的北京* @param {string}liID* @param {number}imgID*/function changeImg(liID, imgID) {$(liID).style.background = 'url("images/阿鲁'+ imgID +'.gif") no-repeat center 30%';$(liID).style.backgroundSize = '60% 60%';}/**** @param {string}liID* @param {number}imgId*/function liLis(liID, imgId) {liID.onmouseover = function () {changeImg('box',imgId);}}
</script>
</body>
</html>

闭包实现

1. 闭包
(function (tag) {})(flag)
获取flag的值,传递给tag,立即执行其中的函数。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>*{margin: 0;padding: 0;list-style: none;}#box{border: 1px solid #cccccc;width: 650px;height: 150px;padding-top: 360px;margin: 100px auto;background: url("images/阿鲁1.gif") no-repeat center 30%;background-size: 60% 60%;}ul{display: flex;justify-content: center;align-items: center;cursor: pointer;}</style>
</head>
<body>
<div id="box"><ul><li id="li01"><img src="data:images/阿鲁1.gif" alt=""></li><li id="li02"><img src="data:images/阿鲁2.gif" alt=""></li><li id="li03"><img src="data:images/阿鲁3.gif" alt=""></li><li id="li04"><img src="data:images/阿鲁4.gif" alt=""></li><li id="li05"><img src="data:images/阿鲁5.gif" alt=""></li></ul>
</div>
<script>window.onload = function (ev) {// 1.获取需要的标签var box = document.getElementById('box');var allLis = box.getElementsByTagName('li');// 2. 接听鼠标进入li标签for (var i = 0; i < allLis.length ; i++) {// 2.1 取出单独li标签var sLi = allLis[i];(function (tag) {// 每一次将i+1的值传给tag,tag记录i+1的值sLi.onmouseover = function (ev1) {box.style.background = 'url("images/阿鲁'+ tag +'.gif") no-repeat center 30%';box.style.backgroundSize = '60% 60%';}})(i+1)}};
</script>
</body>
</html>

Javascript特效:图片切换(类似于电商网站图片查看)的封装实现和闭包实现相关推荐

  1. 一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。

    一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验. 图片懒加载,滚动到相应位置才加载图片. 图片预加载,如果为幻灯片.相册等,将当前展示图片的前一张和 ...

  2. 一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。...

    a. 图片懒加载,滚动到相应位置才加载图片. b. 图片预加载,如果为幻灯片.相册等,将当前展示图片的前一张和后一张优先下载. c. 使用CSSsprite,SVGsprite,Iconfont.Ba ...

  3. python爬虫实例电商_利用Python爬虫批量获取电商网站图片

    import requests import re url='https://list.jd.com/list.html?cat=9987,653,655' res=requests.get(url) ...

  4. HTML5响应式手机模板:电商网站设计——仿淘宝手机app界面模板源码 HTML+CSS+JavaScript...

    HTML5响应式手机模板:电商网站设计--仿淘宝手机app界面模板源码 HTML+CSS+JavaScript 手机电商模板 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 h ...

  5. HTML5期末大作业:电商网站设计——仿淘宝电商网站管理系统21页(含毕业设计论文7500字) HTML+CSS+JavaScript

    HTML5期末大作业:电商网站设计--仿淘宝电商网站管理系统21页(含毕业设计论文7500字) HTML+CSS+JavaScript 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...

  6. html期末作业代码网页设计——化妆品电商网站(4页) HTML+CSS+JavaScript 使用html+css实现一个静态页面(含源码)

    HTML5期末大作业:化妆品电商网站设计--化妆品电商网站(4页) HTML+CSS+JavaScript 使用html+css实现一个静态页面(含源码) 常见网页设计作业题材有 个人. 美食. 公司 ...

  7. HTML5响应式手机模板:电商网站设计——歪秀商城手机端开发静态页面HTML+CSS+JavaScript 手机模板wap 手机网站模板 企业手机网站模板...

    HTML5响应式手机模板:电商网站设计--歪秀商城手机端开发静态页面HTML+CSS+JavaScript 手机模板wap 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 ht ...

  8. HTML5响应式手机模板:电商网站设计——歪秀商城手机端开发静态页面HTML+CSS+JavaScript 手机模板wap 手机网站模板 企业手机网站模板

    HTML5响应式手机模板:电商网站设计--歪秀商城手机端开发静态页面HTML+CSS+JavaScript 手机模板wap 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 ht ...

  9. HTML5响应式手机模板:电商网站设计——仿淘宝手机app界面模板源码 HTML+CSS+JavaScript

    HTML5响应式手机模板:电商网站设计--仿淘宝手机app界面模板源码 HTML+CSS+JavaScript 手机电商模板 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 h ...

  10. 利用jquery实现电商网站常用特效之:五星评分

    这篇文章主要为大家详细介绍了基于jquery实现五星好评,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在电商网站,我们经常会用到五星评分的功能,现在用jQuery实现一个简单的demo: 1.引 ...

最新文章

  1. 失败 安装scikit_scikit-learn0.22版本最新发布
  2. 数据分析之pandas常见的数据处理(四)
  3. 解决php文件包含的问题;Web_php_include-攻防世界
  4. Python Django 常用命令:创建迁移文件/数据库建表/创建admin超级用户
  5. wait和notify的理解与使用
  6. [LeetCode] Search in Rotated Sorted Array
  7. php html登陆逻辑,保持演示文稿(HTML)和逻辑(PHP)分开
  8. 优化Hibernate所鼓励的7大措施:
  9. nginx 配置路由
  10. 如何解决Configuration system failed to initialize
  11. AndroidOpenCV摄像头预览旋转90度问题
  12. VB6.0软件安装包(永久),适用于Windows各系统附安装教程
  13. 请说说自己对鲁迅本人他作品的了解计算机,“鲁迅作品复习”综合性学习试题及答案...
  14. SDUT—Python程序设计实验78(函数)
  15. 猜数字游戏(小游戏编码)
  16. Google Open Images Dataset V4 百度网盘地址。
  17. idea启动报符号缺失,无法启动与构建
  18. Confluence迁移中遇到的问题(Data too long for column #39;STRINGVAL#39;)及解决方法
  19. geoserver发布TIF格式瓦片地图
  20. P3084 照片 [差分约束]

热门文章

  1. 53.NFS 服务器
  2. java 中wait notify简解
  3. 西电计算机学硕毕业要求,关于计算机科学与技术学院2020年12月研究生学位申请工作的通知...
  4. linux修改tomcat时间命令,Linux下把tomcat日志按日期自动分割
  5. APT攻防整理-常用CVE
  6. win10 忘记登录密码后 修改密码
  7. 处理器管理与进程调度
  8. Mybatis sqlsession解析
  9. AssetBundle Manager and Example Scenes
  10. 2 分支语句——《Swift3.0 从入门到出家》