标签 代码段 下的文章

jQuery+CSS3 制作background-color渐变效果

jQuery中虽然用animate,但是他支持的毕竟有限,比如说就不支持background-color,所以要想起到过渡效果,还得靠CSS3来撑门面啦。

刚开始时候写了个function,然后想想这样一点都不好用,我还得传个obj参数进去好麻烦,后来想到了,何不在jQuery里加个方法,就能和原生函数一样调用了。

jQuery.prototype.switchBackgroundColor = function(color1, color2, time) {
    var self = this;
    self.css('background', color1);
    setTimeout(function() {
        self.css('background', color2)
    }, time);
}

- 阅读剩余部分 -

jQuery 点击其他区域关闭弹出窗体效果实现

以前尝试过用body来,结果由于冒泡的缘故,导致就算点击,也会被body中的点击事件覆盖导致根本无法弹出窗体。

于是去查了一下:

$(document).mouseup(function(e){
  var _con = $(' 目标区域 ');   // 设置目标区域
  if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1
    some code...   // 功能代码
  }
});
/* Mark 1 的原理:
判断点击事件发生在区域外的条件是:
1. 点击事件的对象不是目标区域本身
2. 事件对象同时也不是目标区域的子元素
*/

关于点击空白关闭弹窗的js写法推荐?看到的,里面有许多方法, 这是其中一种,感觉也挺好的。

- 阅读剩余部分 -

Javascript Fuck IE代码

因为用了太多CSS,加上似乎jQuery也不支持低版本IE,于是想着能不能fuck IE呢?

结果真的发现了一段类似的代码(本身是用来检测浏览器的),稍作修改之后就可以开始Fuck了。

当然因为太蠢写出来呆萌呆萌的,实际上完全不用这么麻烦(顺便学了一下正则表达式的知识)

window.onload = function() {
    var browser=navigator.appName;
    var version=navigator.userAgent.match(/MSIE [0-9]/);
    if (version != null) 
        version = version[0].match(/[0-9]+/)[0];
    console.log(version);
    if ((browser=="Microsoft Internet Explorer") && (version <= 8)) {
        console.log('Fuck IE');
        document.write('Fuck IE');
    }
}

这里我们用到了navigator的相关属性,关于他的更多属性,可以参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator

这里其实很多都多此一举了=A=当初直接匹配[5-8]就没那么多事了呀,当然这里正则中用到了+,

? 出现零次或一次,最多一次
* 出现任意次(零次、一次、多次)
+ 出现一次或多次,至少一次
{n} 能且只能出现n次
{n,m} 至少出现n次,最多出现m次

然后document.write()覆盖显示内容,当然这里要注意的是,document.write()必须得是最后载入的,于是我们还得使用window.onload保证加载完毕。

关于更多正则小知识:http://www.nowamagic.net/librarys/veda/detail/1019,从这里开始吧。

HTML5/javascript video fullScreen全屏实现方式

在html5中,全屏方法可以适用于很多html 元素,不仅仅是video

代码如下:

<!doctype  html>
<html>
<head>
<meta charset="utf-8" />
<title>全屏问题</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta http-equiv="imagetoolbar" content="no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<style type="text/css">
*{
    padding: 0px;
    margin: 0px;
}
 
body div.videobox{
    width: 400px;
    height: 320px;
    margin: 100px auto;
    background-color:#000;
}
 
body div.videobox video.video
{
width: 100%;
    height: 100%;
}
 
:-webkit-full-screen {
 
}
 
:-moz-full-screen {
 
}
 
:-ms-fullscreen {
   
}
 
:-o-fullscreen {
   
}
 
:full-screen { 
  
}
 
:fullscreen {
  
}
 
:-webkit-full-screen video {
  width: 100%;
  height: 100%;
}
:-moz-full-screen video{
    width: 100%;
    height: 100%;
}
    </style>
</head>
<body>
  
 
<div id="videobox">
      
    <video controls="controls" preload="preload" id="video" poster="poster.jpg">
      <source src="./movie.ogg" type="video/ogg" />
      <source src="./movie.mp4" type="video/mp4" />
      <source src="./movie.webm" type="video/webm" />
      <object data="./movie.mp4" width="100%" height="100%">
        <embed width="100%" height="100%" src="./movie.swf" />
      </object>
 
    </video>
    <button id="fullScreenBtn">全屏</button>
</div>
  
  
<script type="text/javascript">
  
//反射調用
var invokeFieldOrMethod = function(element, method) 
{
   var usablePrefixMethod;
   ["webkit", "moz", "ms", "o", ""].forEach(function(prefix) {
       if (usablePrefixMethod) return;
       if (prefix === "") {
           // 无前缀,方法首字母小写
           method = method.slice(0,1).toLowerCase() + method.slice(1);   
       }
       var typePrefixMethod = typeof element[prefix + method];
       if (typePrefixMethod + "" !== "undefined") {
           if (typePrefixMethod === "function") {
               usablePrefixMethod = element[prefix + method]();
           } else {
               usablePrefixMethod = element[prefix + method];
           }
       }
   });
    
       return usablePrefixMethod;
};
    
//進入全屏
 function launchFullscreen(element) 
   {
    //此方法不可以在異步任務中執行,否則火狐無法全屏
     if(element.requestFullscreen) {
       element.requestFullscreen();
     } else if(element.mozRequestFullScreen) {
       element.mozRequestFullScreen();
     } else if(element.msRequestFullscreen){ 
       element.msRequestFullscreen();  
     } else if(element.oRequestFullscreen){
        element.oRequestFullscreen();
    }
    else if(element.webkitRequestFullscreen)
     {
       element.webkitRequestFullScreen();
     }else{
      
        var docHtml  = document.documentElement;
        var docBody  = document.body;
        var videobox  = document.getElementById('videobox');
        var  cssText = 'width:100%;height:100%;overflow:hidden;';
        docHtml.style.cssText = cssText;
        docBody.style.cssText = cssText;
        videobox.style.cssText = cssText+';'+'margin:0px;padding:0px;';
        document.IsFullScreen = true;
 
      }
   }
//退出全屏
   function exitFullscreen()
   {
       if (document.exitFullscreen) {
         document.exitFullscreen();
       } else if (document.msExitFullscreen) {
         document.msExitFullscreen();
       } else if (document.mozCancelFullScreen) {
         document.mozCancelFullScreen();
       } else if(document.oRequestFullscreen){
            document.oCancelFullScreen();
        }else if (document.webkitExitFullscreen){
         document.webkitExitFullscreen();
       }else{
        var docHtml  = document.documentElement;
        var docBody  = document.body;
        var videobox  = document.getElementById('videobox');
        docHtml.style.cssText = "";
        docBody.style.cssText = "";
        videobox.style.cssText = "";
        document.IsFullScreen = false;
    }
  }
document.getElementById('fullScreenBtn').addEventListener('click',function(){
    launchFullscreen(document.getElementById('video')); 
    window.setTimeout(function exit(){
//檢查瀏覽器是否處於全屏
if(invokeFieldOrMethod(document,'FullScreen') || invokeFieldOrMethod(document,'IsFullScreen') || document.IsFullScreen)
{
exitFullscreen();
}
   },5*1000);
},false);
 
</script>
</body>
  
</html>

- 阅读剩余部分 -

HTML5/CSS/jQuery video大小屏幕自适应及获取视频宽高

今天的第一个任务,就是要让Video的大小能够满屏(适应父级div),换言之要判断高度、宽度,使之能够达到全屏的效果。

在过去的一个版本中,我们要想满屏,写了一段长长的js文件,来取高度宽度对比,之后再计算,居中也要通过js计算得出缩进值——很显然,我觉得这样不合理嘛。浪费了这么多资源在适应上,在监听时不断改变,写入CSS,看着都心累,于是在想,能不能直接通过CSS解决这样一个问题呢(自适应+水平垂直居中)。

答案是可行的。

- 阅读剩余部分 -

CSS 高端阴影效果(1)

演示

这是在慕课网看到教程之后觉得,哎哟这个屌,然后就做了……

只需要一个指定div就能实现这个效果,实际上在未来调用之类的上都是很方便的。其实感觉自己实现的还不是特别的好,比起原来的似乎总觉得缺了点什么,但基本也算完成了。

html不多说,就是一个加了.shadow的div,CSS部分才是重点!

- 阅读剩余部分 -

CSS 做个三角形

目前在山寨百度首页,于是乎就用各种三角,实际上,在前一阵子(考试前)仿照自己博客样式的时候(xsky.me),也曾经折腾过三角形,所以这次来总结(备份)一下。

    height: 0;
    width: 0;
    overflow: hidden;
    font-size: 0;
    line-height: 0;
    border-color: #000 transparent transparent transparent;
    border-style: solid dashed dashed dashed;
    border-width: 5px;

在此,border-width决定了三角形的大小,具体发生了什么,可以参考:三种纯CSS实现三角形的方法,里面介绍了三种,而我只是用了其中的一种。

决定了三角形方向的是由border-color定义来的,transparent的一侧为透明。

CSS cursor属性

如果想要规定a标签以外的,比如增加点击事件,可以大家怎么知道这货可不可以点,一般来说,一是做成按钮样式,而是改变鼠标放置Play时的样式咯,这样大家就知道,哦这货八成可以点。

cursor就能改变鼠标样式了。

cursor:hand 与 cursor:pointer 的效果是一样,都像手形光标。但用FireFox浏览时才注意到使用cursor:hand在FireFox里并被支持。
cursor:hand :IE完全支持。但是在firefox是不支持的,没有效果。
cursor:pointer :是CSS2.0的标准。所以firefox是支持的,但是IE5.0既之前版本不支持。IE6开始支持。

- 阅读剩余部分 -