求教,CSS3绚丽照片墙JS代码及其中遇到的问题

2023-12-23 03:08

本文主要是介绍求教,CSS3绚丽照片墙JS代码及其中遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

听一个刚开始学习前端的同学分享了一个用CSS3做照片墙的案例

参见http://www.imooc.com/comment/227

他认为其中教学的老师在css中大量使用重复代码为每一个图片分配属性值太累,急切想知道怎么能用其他办法实现

为了让他帮他解决这个问题,写了一段JS代码:

 function ranPic(){var imgs=document.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){imgs[i].style.left=Math.random()*1100-400+"px";imgs[i].style.top=Math.random()*500+"px";var ranRotate=Math.random()*50-25;imgs[i].style.transform="rotate("+ranRotate+"deg)";imgs[i].οnmοuseοver= function () {this.style.transform="rotate(0deg)"+''+"scale(1.3)";};imgs[i].οnmοuseοut= function () {var ranRotate=Math.random()*50-25;this.style.transform="rotate("+ranRotate+"deg)";}}}

调用该函数来实现图片的随机分布和触发鼠标事件


下面是原css代码:

body{background-color: #eeeeee;
}
h1{text-align: center;}
.container{width: 960px;height: 450px;margin: 60px auto;position: relative;
}
img{width: 400px;height: 300px;;padding:10px 10px 15px;background: #ffffff;border: 1px solid #dddddd;position: absolute;/*transform: rotate(25deg);*//*-webkit-transform: rotate(25deg);*//*-ms-transform: rotate(25deg);*//*-moz-transform: rotate(25deg);*/transition: 1s;-webkit-transition: 1s;-moz-transition: 1s;
}
img:hover{transform: rotate(0deg) scale(1.3);-webkit-transform: rotate(0deg) scale(1.3);-ms-transform: rotate(0deg) scale(1.3);-moz-transform: rotate(0deg) scale(1.3);box-shadow: -10px 10px 15px #ccc;z-index: 2;
}


可惜我作为一个初学者,在写完JS后半段,调用鼠标事件前,遇到了两个难点,希望有人能与我分享讨论一下解决思路:

1.img:hover中transform失效,不得已操作DOM调用鼠标事件来激发transform属性,请教此处应该如何解决?

2.使用onmouseover事件后,图片无法在鼠标离开后还原,所以才用到onmouseout事件,但是在这个事件中调用变量ranRotate的时候遇到了闭包问题,不会解决,

只能在事件函数中重新生成一次变量,导致鼠标离开后还原的角度与之前不同,求教,谢谢分享


这篇关于求教,CSS3绚丽照片墙JS代码及其中遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/526486

相关文章

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma