标签 语法 下的文章

10个不可忽视的CSS代码片段

1、垂直对齐

在使用CSS的时候,你可能会出现疑问,我如何在容器中将文本或元素垂直对齐。现在使用CSS3 Transforms,我们可以更有效解决这问题,如下:

.verticalcenter{
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
}

使用这个技术,文本、段落等都可以垂直对齐,CSS3 Transform 支持Chrome 4, Opera 10, Safari 3, Firefox 3, Internet Explorer 9。

- 阅读剩余部分 -

jQuery与DOM对象的互相转换

jQuery方法提供两种方法将一个jQuery对象转换为DOM对象
比如

var $cr = $('#cr');
var cr = $cr[0];
// var cr = $cr.get(0);

这两种方法都能把jQuery对象转换成DOM对象

而把DOM对象转换成jQuery对象只要用$()把DOM对象包起来。

比如

var cr = document.getElementById('cr');
var $r = $(cr);

之所以对这个转换有着需求,是因为DOM对象才能使用DOM中的方法,jQuery对象不可以使用DOM中的方法。

jQuery noConflict初识

导读:
w3school noConflict
jQuery API中文文档 noConflict

noConflict方法可以处理一些标记占用的冲突问题(这是目前我觉得的实用的用途)

$.noConflict()可以移交$的控制权,而如果是$.noConflict(true),那么jQuery和$都会消失,重新赋值如:
var $ = window.$.noConflict(true), jQuery = $

这样就能避免冲突在局部使用需要使用的jQuery版本啦。

Javascript ~function的实用性

javascript中 如果希望程序可以直接实行,而不是进行定义,可以再function前面加上~或者其他运算符,这样就能直接执行了。

这样做的优点是可以起到闭包的效果(作用域限定)

用法示例:

~function() {
   var i = 0;
   console.log(i);
}();

就本身而言,console.log不会直接执行,而 如果想要执行,i则会变成全局变量,经过~function之后,i在运行完函数之后就会被销毁了www

Javascript 监听与删除监听的一点解答

在前两天做播放器的时候添加监听后删除监听遇到了一点麻烦,删不掉,后来看了一下才发现,参数需要完全对应,什么叫完全对应呢,换句话说:

$('.video')[0].addEventListener('timeupdate', currentTimeHandler, true);

比如这句,需要传入三个参数,这样才能够删除,为什么一定要这样,没错,蛋疼的地方就在这里:
在add和remove时,第三个参数确实可以不写,但此时他们的默认情况是不一样的!!!

通常情况下addEventListener是false……

关于监听的详细理解,可以见本文:http://www.cnblogs.com/binyong/articles/1750263.html

jQuery HTML5播放器整合多段播放思路

最近由于工作需要在研究HTML5的播放器,HTML5其实自带的已经很全了,但是当我们需要把切割的视频整合播放的时候就遇到了麻烦,这里我想到了一个思路,正好发现网上也提到了很多这种思路:

首先多播放器窗口,除了一个以外display:none,一般需求中两个就足够了。然后监听是否结束(关于监听,稍后再发一篇讲讲Javascript的监听问题),监听本P播放结束之后将下一个的链接赋值到隐藏的那个,交替display,进度条当然需要重做,这里就需要统计总时长了。

关于HTML5 Video的事件可以参考:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp

当然理论上很好想,实际在用的时候还是遇到了一些问题:
最近由于工作需要在研究HTML5的播放器,HTML5其实自带的已经很全了,但是当我们需要把切割的视频整合播放的时候就遇到了麻烦,这里我想到了一个思路,正好发现网上也提到了很多这种思路:

首先多播放器窗口,除了一个以外display:none,一般需求中两个就足够了。然后监听是否结束(关于监听,稍后再发一篇讲讲Javascript的监听问题),监听本P播放结束之后将下一个的链接赋值到隐藏的那个,交替display,进度条当然需要重做,这里就需要统计总时长了。

关于HTML5 Video的事件可以参考:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp

当然理论上很好想,实际在用的时候还是遇到了一些问题:

- 阅读剩余部分 -

C 今天我们来聊聊栈与括号配对

很巧的是,之前这两者我都有说过,虽然当时没有深刻的认识,只是很新鲜的看到了之后写了两篇日志罢了,没想到终有一天,我还是和他们俩见面了,而且是合体版。

栈:关于栈的进出
括号匹配:C 一个程序查找基本语法错误

当然,这两篇和数据结构完全没有关系,大致上是科普中的科普了。

我们来看看这次的题目:

表达式中可能出现花括号{}、方括号[]、园括号(),从键盘输入一个表达式,检查左右括号配对情况,并输出结果。
例子:{[(…)(…)]…(…)}配对
而{[(…)(…)]…[(]…)}不配对

- 阅读剩余部分 -

C 扑克牌配对说链表

以后每个数据结构作业都会那么小小的总结一下,数据结构的作业做了之后收获还是颇多的(废话当然比电子电路、大学物理收获多咯)

题目:

采用线性链表方式编程序模拟扑克牌配对游戏。通过键盘输入点数模拟抓牌,拿到新牌时,看手上是不是有同点数的牌,有的话,两者配对并抽掉手上的牌,没有的话,将牌插入手上的牌中,手上的牌保持按点数从小到大顺序排列。

扑克牌配对github链接

- 阅读剩余部分 -

C (bu)科学的复数求解(两数加减乘除)

这次真的是记录一下思考过程了,反正是个很坎坷复杂的经历。
github地址:https://github.com/csvwolf/Sky-C-Study/tree/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84
老师给了我们一个结构体的框架,不得不说C的结构体和C++的还是有差别的:http://www.cppblog.com/percyph/archive/2009/03/06/75742.html

由此,我们这样定义一个结构体之后:

typedef struct
{
    float rpart;
    float ipart;
} complex;

- 阅读剩余部分 -