`

HTML5滤镜效果demo

阅读更多
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        @-webkit-keyframes testAnim {
            0% {-webkit-filter: grayscale(0.5) blur(1px) saturate(2);}
            100% {-webkit-filter: grayscale(0.2) blur(6px) saturate(9);}
        }

        /*IE,FF暂不支持*/
        @-moz-keyframes testAnim {
            0% {-moz-filter: grayscale(0.5) blur(1px) saturate(2);}
            100% {-moz-filter: grayscale(0.2) blur(6px) saturate(9);}
        }

        @-ms-keyframes testAnim {
            0% {-ms-filter: grayscale(0.5) blur(1px) saturate(2);}
            100% {-ms-filter: grayscale(0.2) blur(6px) saturate(9); }
        }

        @keyframes testAnim {
            0% {filter: grayscale(0.5) blur(1px) saturate(2);}
            100% {filter: grayscale(0.2) blur(6px) saturate(9);}
        }

        #animatePhoto {}
        .animatePhoto:hover,#animatePhoto:hover{
            -webkit-animation-name: testAnim;
            -webkit-animation-duration: 2s;
            -webkit-animation-iteration-count: 1;
            -webkit-animation-direction: alternate;
            -webkit-animation-timing-function: ease-out;
            -webkit-animation-fill-mode: forwards;
            -webkit-animation-delay: 0s;

            /*IE,FF暂不支持*/
            -moz-animation-name: testAnim;
            -moz-animation-duration: 2s;
            -moz-animation-iteration-count: 1;
            -moz-animation-direction: alternate;
            -moz-animation-timing-function: ease-out;
            -moz-animation-fill-mode: forwards;
            -moz-animation-delay: 0s;

            -ms-animation-name: testAnim;
            -ms-animation-duration: 2s;
            -ms-animation-iteration-count: 1;
            -ms-animation-direction: alternate;
            -ms-animation-timing-function: ease-out;
            -ms-animation-fill-mode: forwards;
            -ms-animation-delay: 0s;

            animation-name: testAnim;
            animation-duration: 2s;
            animation-iteration-count: 1;
            animation-direction: alternate;
            animation-timing-function: ease-out;
            animation-fill-mode: forwards;
            animation-delay: 0s;
        }
        .l,.r{ width:40%; float:left; padding:40px;}
    </style>
</head>
<body>
    <div class="l">
        <h3>图片滤镜特效试验</h3>
        <img id="fxPhoto" src="http://avatar.csdn.net/A/7/9/1_damys.jpg" />
        <div id="sliderContainer"></div>
    </div>

    <div class="r">
        <h3>图片滤镜特效试验:hover</h3>
        <img id="animatePhoto" class="animatePhoto" src="http://avatar.csdn.net/A/7/9/1_damys.jpg" />
    </div>
    <script type="text/javascript">
        var photo = document.querySelector("#fxPhoto");
        var filters = [
            { name: "grayscale", cname: "黑白照片(灰度级)效果", def: "0", unit: "", min:0 , max:1.0, step: "0.01" },
            { name: "blur", cname: "模糊效果", def: "0", unit: "px", min: 0, max: 10 , step: "1"},
            { name: "sepia", cname: "老照片(褐黄色)效果", def: "0", unit: "", min: 0, max: 1.0 , step: "0.01"},
            { name: "saturate", cname: "饱和度调整", def: "1", unit: "", min: 0, max: 1.0 , step: "0.01"},
            { name: "opacity", cname: "透明度调整", def: "1", unit: "", min: 0, max: 1.0 , step: "0.01"},
            { name: "brightness", cname: "亮度调整", def: "1", unit: "", min: 0, max: 1.0 , step: "0.01"},
            { name: "contrast", cname: "对比度调整", def: "1", unit: "", min: 0, max: 1 , step: "0.01"},
            { name: "hue-rotate", cname: "色调调整", def: "0", unit: "deg", min: 0, max: 360 , step: "1"},
            { name: "invert", cname: "色彩反相", def: "0", unit: "", min: 0, max: 1.0 , step: "0.01"}
        ];

        // Change event
        function onChange() {
            var cssString = "";

            filters.forEach(function(n,i) {
                var value = document.querySelector('#'+n.name).value;
                // Update the value title
                document.querySelector('#title_'+n.name).innerHTML = "<h3>" + n.cname + "(" + n.name + ":" +value + n.unit + ")</h3>";

                // Update CSS string
                cssString += " " + n.name + "(" + value + n.unit + ")";
            });
            photo.style["-webkit-filter" ]= cssString;
        }
        HTMLElement.prototype.appendHTML = function(html) {
            var divTemp = document.createElement("div"), nodes = null
            // 文档片段,一次性append,提高性能
                    , fragment = document.createDocumentFragment();
            divTemp.innerHTML = html;
            nodes = divTemp.childNodes;
            for (var i=0, length=nodes.length; i<length; i+=1) {
                fragment.appendChild(nodes[i].cloneNode(true));
            }
            this.appendChild(fragment);
            // 据说下面这样子世界会更清净
            nodes = null;
            fragment = null;
        };
        // For every filter
        var container = document.querySelector("#sliderContainer");

        filters.forEach(function(n) {
            container.appendHTML("<p id='title_"+n.name+"'>"+n.cname+"</p>");
            container.appendHTML("<input onChange='onChange()' value='"+n.def+"' type='range' id='"+n.name+"' min='"+n.min+"' max='"+n.max+"' step='"+n.step+"'>");
        });

        onChange();
    </script>
</body>
</html>

 

分享到:
评论

相关推荐

    超强html5学习demo

    此外,`&lt;canvas&gt;`元素为动态图像处理和图形绘制提供了强大的支持,例如,可以实现图片的裁剪、缩放、滤镜效果等。 三、Canvas变换 `&lt;canvas&gt;`元素提供了`translate()`、`rotate()`、`scale()`和`transform()`等方法...

    图片旋转 滤镜 html5

    "图片旋转 滤镜 html5"这个主题聚焦于如何在HTML5环境中实现图片的旋转和应用滤镜效果。HTML5引入了强大的Canvas API,使得在浏览器端进行图像处理成为可能,而无需借助服务器端的技术。 首先,我们来看一下"图片...

    真正的磨砂效果demo

    "真正的磨砂效果demo"是一个专门展示如何实现这一效果的示例项目。 首先,我们要理解磨砂效果的原理。磨砂玻璃的特性是透光而不透明,给人一种朦胧的感觉。在数字设计中,我们通常通过调整颜色的透明度、添加模糊...

    hue-rotate色调旋转滤镜demo.rar

    在"hue-rotate色调旋转滤镜demo.rar"中,你可能会找到一些HTML和CSS文件,这些文件展示了不同角度下的hue-rotate滤镜效果。通过查看和实验这些示例,你可以更好地理解滤镜如何影响图像,并掌握如何在实际项目中应用...

    jquery.slider滑动焦点图片切换插件支持百叶窗滤镜效果图片切换.zip

    5. `images`、`demo21`、`demo41`、`demo51`、`demo31`:这些可能是包含示例图片或不同效果配置的文件夹,用于展示jQuery Slider的多方面功能,包括不同类型的百叶窗效果。 总的来说,jQuery Slider插件通过其百叶...

    h5 app多张图片选择修改demo

    此外,利用WebGL或CSS3的滤镜效果,还可以对图片进行简单的编辑或修饰。 “调用手机摄像头拍照”涉及到了HTML5的`getUserMedia`接口,这是一个允许Web应用访问用户的媒体输入设备(如摄像头和麦克风)的API。开发者...

    SVG Demo.rar

    SVG还支持动画(如`&lt;animate&gt;`元素)、样式(CSS或内联样式)、脚本(JavaScript)和滤镜效果,可以创建复杂的图形和交互式用户体验。此外,SVG可以与其他Web技术如HTML、CSS和JavaScript无缝集成,使其成为现代Web...

    canvas demo

    这个demo可能包含了各种图像处理技巧,如绘图、裁剪、旋转、缩放以及滤镜效果等。 在HTML5中,`&lt;canvas&gt;`元素通过JavaScript进行编程,可以用于创建交互式的图形、动画甚至游戏。以下是一些关键的知识点: 1. **...

    css3模糊demo.zip

    此外,CSS3还允许我们将多个滤镜效果组合在一起。例如,我们可以先应用`grayscale()`(灰度)滤镜,再应用`blur()`滤镜,这样可以创建出一种复古的模糊效果: ```css .filter-combination { filter: grayscale(1) ...

    反灰效果 html img for html 5

    在给定的文件列表中,`demo.html`可能是实现这一效果的示例代码,`grayscale.svg`可能包含了SVG滤镜,`css`目录下的文件可能包含CSS样式,`images`目录下可能有用于测试的图片,而`js`目录则可能包含JavaScript处理...

    HTML5 特效 演示

    "demo.html"可能就包含了一些Canvas特效,比如动画、游戏、图表或者图像滤镜等。Canvas的API允许开发者进行像素级操作,实现复杂的交互效果。 另外,HTML5的Audio和Video元素使得在网页上内嵌多媒体内容变得简单...

    html canvas demo

    甚至可以实现图片的像素级编辑,如模糊、锐化等滤镜效果。 Canvas API也支持图像的加载和绘制,如`drawImage()`方法,可以将图片文件(如JPEG、PNG)绘制到画布上,甚至可以进行剪裁、缩放和旋转等操作。这在制作...

    js实现首页焦点图片切换效果

    - **demo.jpg**:这可能是用来测试切换效果的一张示例图片。 - **js脚本大全**:可能包含实现焦点图片切换效果的JavaScript代码。 - **js讨论社区.url**:可能是一个链接,指向有关JavaScript编程的在线讨论社区,供...

    JS-OCR-demo-gh-pages.zip_JS-OCR_OCR_Ocrad _html5_jquery ocr

    2. **glfx.js**: 这是一个基于WebGL的图像效果库,用于在浏览器中实现高质量的图像滤镜和特效。在OCR应用中,glfx.js可能用于图像预处理,如调整对比度、亮度,或去除噪声,以提高OCR识别的准确率。 3. **JCrop**: ...

    2021-2022年收藏的精品资料软件工程师10个HTML5精彩应用设计案例.docx

    MURO是基于HTML5的在线绘画工具,提供基础和专业两种模式,具备滤镜、锐化工具等效果,用户界面简洁易用。 10. 地理定位(http://studio.html5rocks.com/#Geolocation) HTML5的Geolocation API允许网站获取用户的...

    用canvas实现图片滤镜效果附演示

    在本文中,我们将探讨如何使用HTML5的Canvas API来实现图片滤镜效果,特别是模拟摄像机拍摄电视屏幕时出现的点状颗粒效果。这个技术基于Canvas的2D渲染上下文,通过对图像数据进行操作来实现各种滤镜效果。 首先,...

    HTML5毛玻璃

    "HTML5毛玻璃"是指利用HTML5的一些特性,尤其是Canvas元素和相关的图形处理函数,来实现类似Windows 8及iOS 7中的“毛玻璃”效果,这种效果通常被称为模糊或半透明效果,可以增加界面的美观性和现代感。 在HTML5中...

    HTML3D轮播切换图片源码附注释.rar

    源码使用CSS属性+原生js代码实现图片轮播切换、图片整体跟随鼠标移动效果、图片整体鼠标滚轮控制缩放,使用的css属性包括:弹性盒布局元素居中、背景图片平铺尺寸设置、相对、绝对定位、滤镜效果、图片层级、边距...

    alloyImage基于canvas的图片插件demo

    然而,这些API直接使用起来可能会比较复杂,而AlloyImage则是对这些原生API进行了封装,提供了更友好的接口和功能,比如图片裁剪、旋转、滤镜效果等。 在"alloyImage基于canvas的图片插件demo"中,我们可以期待看到...

    网页制作完全手册!dhtml+html+css+htc+time+vml+滤镜~等等

    "demo.jpg"可能是一个示例图片,用于展示上述技术的实际应用,例如CSS样式效果或者DHTML动态效果。 总结来说,这个"网页制作完全手册"将涵盖从基本的HTML结构到复杂的DHTML交互,再到CSS的视觉设计和VML/SVG图形...

Global site tag (gtag.js) - Google Analytics