### JavaScript与CSS滤镜结合实现图片随机效果 在网页设计中,通过JavaScript和CSS滤镜技术结合使用可以为用户带来更加丰富的视觉体验。本篇文章将详细介绍如何利用这些技术实现一个简单但有趣的图片滤镜切换功能。 #### 核心概念解析 - **JavaScript**: 一种常用的脚本语言,用于实现网页上的交互效果。 - **CSS滤镜**: CSS提供了一组滤镜效果,可以应用于HTML元素,例如图片或div等。 - **图片切换**: 在网页中动态更换图片的过程。 - **随机选择CSS滤镜**: 通过JavaScript随机选择不同的CSS滤镜应用到图片上。 #### 实现原理 该案例的核心在于通过JavaScript函数实现图片的切换以及随机应用CSS滤镜效果。具体来说,主要包括以下几个部分: 1. **HTML结构定义**:页面包含一个`<img>`标签用于显示图片,以及一组链接用于触发图片的切换。 2. **JavaScript逻辑处理**: - **图片切换函数** `showim(a)`:接受一个参数`a`,表示要显示的新图片路径,并更新`<img>`标签的`src`属性,从而实现图片的切换。 - **随机滤镜应用函数** `xiaoguo()`:此函数中首先调用`Math.random()`生成一个0到1之间的随机数,然后将其乘以23得到一个介于0到23之间的值。这个值被用来设置`<img>`标签的`filters.revealTrans.Transition`属性,从而实现随机的滤镜效果。最后通过`apply()`和`play()`方法应用并播放滤镜效果。 3. **CSS滤镜效果定义**:虽然示例代码中没有明确写出CSS样式,但从`style`属性中的`FILTER:revealTrans(duration=2,transition=23)`可以看出,这里预先设置了`revealTrans`滤镜,其中`duration`控制过渡时间,`transition`指定过渡类型。 #### 示例代码分析 ```html <script type="text/javascript"> function showim(a) { xiaoguo(); // 去除旧效果 document.getElementById("ps").src = a; } function xiaoguo() { // 应用随机滤镜 var t = Math.random() * 23; // 生成随机数 document.getElementById("ps").filters.revealTrans.Transition = t; // 应用新滤镜 document.getElementById("ps").filters.revealTrans.apply(); document.getElementById("ps").filters.revealTrans.play(); } </script> <body> <div> <img src="imegs/2.jpg" alt="#" id="ps" style="width:400px;height:400px;FILTER:revealTrans(duration=2,transition=23)"/> </div> <div> <script type="text/javascript"> for (var i = 2; i < 8; i++) { var as = "imegs/" + i + ".jpg"; document.write("<a href='#' onclick='showim(\"" + as + "\")'>" + i + "</a> "); } </script> </div> </body> ``` ### 扩展知识点 1. **JavaScript DOM操作**:上述代码展示了如何通过JavaScript操作DOM元素,如获取元素、更改元素属性等。 2. **CSS滤镜API**:除了`revealTrans`外,还有许多其他滤镜可用,例如`blur`, `brightness`, `contrast`等。 3. **事件监听器**:在实际开发中,通常会使用更现代的方法来绑定事件监听器,如`addEventListener`。 4. **响应式设计**:为了让图片在不同设备上都能良好显示,还可以添加响应式的CSS样式。 通过以上内容的学习,我们可以更好地理解如何利用JavaScript和CSS滤镜技术来提升网页的互动性和美观度。这种技术不仅可以用于简单的图片展示,还可以扩展到更复杂的场景中,如动态背景、互动式UI元素等。
function showim(a)
{
xiaoguo() //调用去骗切换熊效果的函数
document.getElementById("ps").src=a;
}
function xiaoguo() //图片切换效果
{
var t=Math.random()*23; //得到随机数
document.getElementById("ps").filters.revealTrans.Transition =t;
//应用播放切换效果
document.getElementById("ps").filters.revealTrans.apply();
document.getElementById("ps").filters.revealTrans.play();
}
</script>
<body>
<div>
<img src="imegs/2.jpg" alt="#" id="ps" style="width:400px; height:400px; FILTER: revealTrans(duration=2,transition=23)"/>
</div>
<div>
<script type="text/javascript">
for(i=2;i<8;i++)
{
- Sand_Ng2013-04-01还可以,不是我要的效果~~~
- happy_1314_lu2015-08-14不错,是我需要的,很详细,非常感谢
- 粉丝: 2
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助