MathJax 配置和动态加载元素 生成公式

2015-8-6 奇Yu WEB开发

首先最简单的配置就是直接在 连接后面加上配置连接

<script type="text/javascript" src="http://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS_HTML"></script>


如 MathJax.js?config=TeX-AMS_HTML 后面的?config=TeX-AMS_HTML

然后国内的 mathjax个个版本的CDN速度杠杠的

http://www.bootcdn.cn/mathjax/


有时候是在mathjax初始化完后动态添加的HTML 元素 需要渲染的时候

调用下面一句话就OK 了。


MathJax.Hub.Queue(['Typeset', MathJax.Hub]);



评论(2) 浏览(4928)

网站添加JSON解析

2015-8-3 奇Yu WEB开发

在酷Q网站看到的一个比较好的在线JSON 解析

然后就下载下拉放到自己网站,方便以后使用

https://www.imqiyu.com/json/

评论(0) 浏览(1936)

微场景 之 swiper 进场动画和出场动画插件

2015-7-1 奇Yu WEB开发

微场景 现在是如火如茶,在线创作平台比比皆是。

如果是自己手动创建使用swiper创建场景切换是最快的。

swiper对手机触屏支持也比较好。甚至不用任何第三方插件。

swiper中文网提供了一个快速创建 动画的插件。

但是有一个问题。这个插件只有入场动画没有出场动画。

工作上正好用上。用了半天时间写的。

现在放到博客里。

swiper使用方法 参考http://www.swiper.com.cn/usage/index.html

在头部引入

<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="path/to/swiper.min.css">
    <link rel="stylesheet" href="path/to/animate.min.css">
</head>
<body>
    ...
    <script src="path/to/swiper.min.js"></script>
    <script src="path/to/swiper.animate.min.js"></script>
</body>
</html>


然后初始化SWIPER 和插件


<script>        
  var mySwiper = new Swiper ('.swiper-container', {
  onInit: function(swiper){ //Swiper2.x的初始化是onFirstInit
    swiperAnimateCache(swiper); //隐藏动画元素 
    swiperAnimate(swiper); //初始化完成开始动画
  }, 
  onSlideChangeEnd: function(swiper){ 
    swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
  } 
  })        
  </script>
</body>


呵呵这和 swiper中文网的一样,岂止是抄袭啊。就是在原来的思路上扩展的。。

重点在这里。。这里的写法和以前不一样。


<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide a">

            <div class="ani big-green"
                 data-slide-in="at 500 from bounceInDown use swing during 500"
                 data-slide-out="at 0 to fadeOutRight use swing during 1500 force"
                 style="top: 50px; left: 20px; width: auto; height: auto;">内容1
            </div>
            <div class="ani big-green"
                 data-slide-in="at 500 from fadeInUpBig use swing during 1500"
                 data-slide-out="at 1000 to fadeOutUp use swing during 500 force"
                 style="top: 172.8px; left: 120.8px; width: auto; height: auto;">内容2
            </div>
        </div>
        <div class="swiper-slide b">
            <div class="ani big-green"
                 data-slide-in="at 500 from bounceInRight use swing during 500"
                 data-slide-out="at 1000 to bounceOutLeft use swing during 500 force"
                 style="top: 50px; left: 100px; width: auto; height: auto;">内容3
            </div>
            <div class="ani big-green"
                 data-slide-in="at 100 from zoomInLeft use swing during 500"
                 data-slide-out="at 2000 to zoomOutUp use swing during 500 force"
                 style="top: 150px; left: 50px; width: auto; height: auto;">内容4
            </div>
        </div>

    </div>
</div>


在每个要动画的类上面添加一个 ani的类名 然后在后面的DATA内 多了两个参数 data-slide-in 进场动画和 data-slide-out出场动画

参数是一致的。

 at         500        from  bounceInRight use     swing       during     500

在   多少时间开始   以   什么动画         使用    什么速度 动画用时  多少  (force 是否使用 只在出场的时候判断)

at        后面跟的是     动画延迟时间

from     后面跟的是    动画样式

use       后面跟的是    动画力度

during   后面跟的是    动画持续时间

force     后面跟的是    是否使用 只有在出场动画的时候使用。进场动画无效。。


需要说明的是  

出场动画执行时间 =进场等待时间(at)+进场动画执行时间(during)+出场等待时间(at)



标签: wap 微场景

评论(9) 浏览(14926)

比较有意思的在线 家具换场景

2015-6-9 奇Yu WEB开发

网上有几个比较有趣的 在线换场景的功能。。

https://www.imqiyu.com/room/

其实想想真的很简单

在3D里面建好模

在同一个位置打摄像机

然后 贴不同材质  渲染

在把这个地方的图片抠出来 变成PNG格式


网页处理就简单多了。上下3个DIV层定位在同一个地方

然后JS替换不同的图片。

突然感觉处理图片的人好累哦。。





评论(0) 浏览(2140)

Thinkphp mysql 表结构操作 类

2015-3-30 奇Yu WEB开发

<?php
/*
 *    mysql表结构处理类
 *    创建数据表,增加,编辑,删除表中字段
 *
 */
namespace Org\Util;
class Msqlstruct
{
    /*
     * 创建数据库,
     * table 要查询的表名
     */
    function createTable($sql,$table){
       M()->execute($sql);
       return $this->checkTable($table);
    }
    /**
     *删除表
     * @param 表明 $table
     * return bool    
     */
    function dropTable($table){
        $sql="DROP TABLE `__PREFIX__{$table}`";  
        M()->execute($sql);       
        return true;
      
    }
    /*
     * 检测表是否存在,也可以获取表中所有字段的信息
     * table 要查询的表名
     * return 表里所有字段的信息
     */
    function checkTable($table){
       $sql="desc `__PREFIX__{$table}`";
       $info=M()->execute($sql);
        return $info;
    }
    
    /*
     * 检测字段是否存在,也可以获取字段信息(只能是一个字段)
     * table 表名
     * field 字段名
     */
    function checkField($table,$field){
        $sql='desc `__PREFIX__'.$table.'` `'.$field.'`'; 
        $info=M()->execute($sql);                       
        return $info;
    }
    
    /*
     * 添加字段
     * table 表名
     * info  字段信息数组 array
     * return 字段信息 array
     */
    function addField($table,$info){
        $sql="alter table `__PREFIX__{$table}` add ";               
        $sql.=$this->filterFieldInfo($info);  
        M()->execute($sql);              
       return $this->checkField($table,$info['name']);
    }
    
    /*     
     * 修改字段类型
     * 不能修改字段名称,只能修改
     */
    function editField($table,$info){
        $sql="alter table `__PREFIX__{$table}` modify ";
        $sql.=$this->filterFieldInfo($info);     
        M()->execute($sql);      
       return $this->checkField($table,$info['name']);
    }
    /**
     * 修改字段名称
     * alter table     tablename    change   old_field_name    new_field_name  old_type;
     */
    function changeField($table,$old_field_name,$info){
        $sql="alter table `__PREFIX__{$table}` change  `{$old_field_name}` ";
        $sql.=$this->filterFieldInfo($info);
        M()->execute($sql);    
       return $this->checkField($table,$info['name']);
    }
             
    
    /*
     * 字段信息数组处理,供添加更新字段时候使用
     * info[name]   字段名称
     * info[type]   字段类型
     * info[length]  字段长度
     * info[isNull]  是否为空
     * info['default']   字段默认值
     * info['comment']   字段备注
     */
    private function filterFieldInfo($info){        
        if(!is_array($info))
            return
            $newInfo=array();
        $newInfo['name']=$info['name'];
        $newInfo['type']=$info['type'];
        switch($info['type']){
            case 'varchar':
            case 'char':                
                $newInfo['length']=empty($info['length'])?100:$info['length'];               
                $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
                $newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default'];
                $newInfo['comment']=empty($info['comment'])?'':'COMMENT '."'".$info['comment']."'";
                break;
            case 'int':
                $newInfo['length']=empty($info['length'])?7:$info['length'];
                $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
                $newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default'];
                $newInfo['comment']=empty($info['comment'])?'':'COMMENT '."'".$info['comment']."'";
                break;
            case 'text':
                $newInfo['length']='';
                $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
                $newInfo['default']='';
                $newInfo['comment']=empty($info['comment'])?'':'COMMENT '."'".$info['comment']."'";
                break;
        }      
        $sql="`".$newInfo['name']."` ".$newInfo['type']." ";
        $sql.=(!empty($newInfo['length']))?'('.$newInfo['length'].') ':' ';
        $sql.=$newInfo['isNull'].' ';
        $sql.=$newInfo['default'];
        $sql.=$newInfo['comment'];
        return $sql;
    }
    
    /*
     * 删除字段
     * 如果返回了字段信息则说明删除失败,返回false,则为删除成功
     */
    function dropField($table,$field){
        $sql="alter table `__PREFIX__{$table}` drop column `{$field}`";
        M()->execute($sql);
        if($this->checkField($table,$field)){
            return false;
        }else{
            return true;
        }
    }
    
    /*
     * 获取指定表中指定字段的信息(多字段)
     */
    function getFieldInfo($table,$field){
        $info=array();
        if(is_string($field)){
            $this->checkField($table,$field);
        }else{
            foreach($field as $v){
                $info[$v]=$this->checkField($table,$v);
            }
        }
        return $info;
    }
    
}

?>

标签: php

评论(0) 浏览(2333)

vc 用GDI将jpg图片从文件 复制到黏贴版.

2015-3-24 奇Yu 系统编程

这是很久以前的方法了。当时为了将JPG图片复制到黏贴版。在网上搜了很多。。

大多少的文章都是千遍一律的转载。

讲的都是Bmp的复制。并且还有错。

后来我使用GDI 实现的。

今天偶然翻到这个文件夹 将方法放在这。


//打开黏贴版
	
     if(OpenClipboard()) 
	{ 
	EmptyClipboard(); 
	CBitmap* junk   =   new   CBitmap(); 
	CClientDC   cdc(this); 
	CDC   dc; 
	dc.CreateCompatibleDC(&cdc); 
	CRect   client(0,0,300,300); 
	junk-> CreateCompatibleBitmap(&cdc,client.Width(),client.Height()); 
	dc.SelectObject(junk); 
	//使用GDI得到图片
	Bitmap pBitmap(L"F:\\aaa.jpg");
	Status status = pBitmap.GetLastStatus();
	Graphics graphics(dc);
	HBITMAP hBitmap=NULL;
	if(Ok == status)
	{
		status = pBitmap.GetHBITMAP(Color(0,0,0), &hBitmap);
	}	
	Bitmap bitmap(hBitmap, NULL);

	//画图
	graphics.DrawImage(&bitmap, Rect(0,0,300,300)); 
	
	
	

	//复制数据到剪贴板 
	SetClipboardData(CF_BITMAP,junk-> m_hObject); 
	CloseClipboard(); 
graphics.ReleaseHDC(dc);

		DeleteObject(junk);
		DeleteObject(&bitmap);
		DeleteObject(hBitmap);
		DeleteObject(&pBitmap);
		

		cdc.DeleteDC();
		dc.DeleteDC();
	

	delete   junk; 
	} 


标签: vc mfc

评论(0) 浏览(2748)

zend studio 12 离线汉化 和破解

2015-3-20 奇Yu 乱七八糟

首先提供一个 zend studio 12汉化的百度连接地址

http://pan.baidu.com/s/1dD5x1cd

下载后解压



安装方法

Help–> Install New Software..

然后

QQ截图20150320195013.png

QQ截图20150320195040.png

QQ截图20150320195141.png

然后就是 下一步

接受

 完成



关于破解

http://pan.baidu.com/s/1eQ1rEng

将下载的文件 覆盖掉

ZendStudio 安装目录下plugins目录下的 plugins的com.zend.verifier_12.0.0.v20141115-2331.jar



注意:如果你的版本不是这个版本

一个最简单的方法

就是 在 plugins目录下 搜索 com.zend.verifier_前半部分。

这时候就会出现一个 你将这个文件的 文件名 复制然后将刚下载的 破解文件重命名成这个文件名。然后覆盖这个文件

在启动看看。已经破解。百试不爽。。


评论(0) 浏览(5863)

php 银行贷款利息 等额本息 等额本金

2015-2-1 奇Yu WEB开发

//等额本金还款法
  private  static function debj($borrow_amount, $rate, $drepay_time,$showYue=false){     
   
       //累计还款总额
       $HuanKuanZonge=0;
       //月本金
       $yueBenJin = $borrow_amount / $drepay_time;
     
   
       $fh = array();
       $fh['yueBenJin'] = $yueBenJin;
   
        //余额
       $yue = $borrow_amount;
       $sz = array();
       for($i = 1; $i <= $drepay_time; $i++)
       {
           $yueHuanKuan = $borrow_amount/$drepay_time + ($borrow_amount-$borrow_amount*($i-1)/$drepay_time)*$rate;//第i月还款额
        
           if ($i == 1)
           {
               //首月还款
               $fh['shouYueHuanKuan'] = $yueHuanKuan;
           }
           if ($i == 2)
           {
               //每月递减
               $fh['meiYuDiJian'] = $fh['shouYueHuanKuan'] - $yueHuanKuan;
           }
           $HuanKuanZonge = $HuanKuanZonge + $yueHuanKuan;
           $yueLiXi = $yueHuanKuan - $yueBenJin;
           $yue = $yue - $yueBenJin;
   
           $xj = array();
           $xj['bh'] = $i;
           $xj['yueLiXi'] = $yueLiXi;   //月利息
           $xj['yueBenJin']=$yueBenJin; //月本金
           $xj['yueHuanKuan'] = $yueHuanKuan;   //月还款
           $xj['yue'] = $yue;     //余额
           $sz[$i-1] = $xj;
       }
       $fh['zongLiXi'] = $HuanKuanZonge - $borrow_amount;
       $fh['huanKuanZongHe'] = $HuanKuanZonge;

       if ($showYue)
       {
           $fh['xx'] = $sz;
       } 
       return $fh;

}


//等额本息

	
/**
*
* @param 总金额 $je
* @param 月利率 $ylv
* @param 借款时间 $qx
* @param bool 是否显示详细 $isshow
* @return multitype:number multitype:multitype:number Ambigous <string, number>
*/
private static function debx($je, $ylv, $qx,$isshow=false)
{
//每月还款
$yhk=$je * $ylv * (pow(1+$ylv, $qx)/(pow(1+$ylv, $qx) -1));;
//累计还款总额
$hkze=$yhk * $qx;
//累计支付利息
$zlx=$hkze - $je;
$fh = array();
$fh['zongLiXi'] = $zlx;
$fh['huanKuanZongHe'] = $hkze;
$fh['yueHuanKuan'] = $yhk;
if ($isshow)
{
$ye = $je; //贷款余额
$sz =array();
for ($i=1; $i<=$qx; $i++)
{
$ylx = $ye * $ylv;
$ybj = $yhk-$ylx;
$ye -= $ybj;
$xj = array();
$xj['bh'] = $i;
$xj['yueLiXi'] = $ylx; //月利息
$xj['yueBenJin'] = $ybj; //月本金
$xj['yueHuanKuan']=$ylx+$ybj;//月还款
$xj['yue'] = $ye; //余额
$sz[$i-1] = $xj;
}
$fh['xx'] = $sz;
}
return $fh;
}

标签: php

评论(1) 浏览(2136)

php 命名空间 new变量 的类

2015-1-22 奇Yu WEB开发

当工作中需要调用一个变量的类的时候

因为试用了命名空间

如果直接 写成

new \Common\Lib\$className();

这样是不行的

解决办法有使用

evel('new \Common\Lib\$className()');

5.5后可以使用

ReflectionClass 类反射然后 在用newInstanceArgs 实例化


其实更简单的办法就是 拼接字符串

既然在 NEW的时候不能拼接

完全可以在NEW之前拼接

 $c="className";  //类名
  $class='\Common\Lib'.'\\'.$c;    //拼接  
   $a=new $class();   
注意 拼接的时候需要 转移最后一个 \

标签: php

评论(0) 浏览(1652)

不要忘记当初的梦想

2014-12-4 奇Yu 乱七八糟

      有兄弟二人,旅游回来深夜到家,楼好高, 他们家住八十层,太晚了没电梯。他们决定爬楼上去。爬啊爬,一开始,虽然背着大行李包,却也健步如飞,不过到了二十层,开始感觉到累了。弟弟跟哥哥商量,咱们把行李放楼道里吧,反正明天有了电梯,我们再来拿。 哥哥一听,觉得也对,就同意了。可是空着手爬楼,一样觉得很累,到了三十层,两个人的抱怨越来越多,可是能怎样呢?总不能停下来睡楼道,只能一边抱怨一边爬。到了四十层,抱怨的声音反而比刚才小了,因为他们发现越抱怨反而越累。到了五十层,他们基本不抱怨了,只是默默的往上爬。等到了六十层,他们偶尔说句 话,也是鼓励对方,快到了,再坚持一下吧,就快到了。 终于,他们到了八十层。弟弟笑着对哥哥说, 唉呀,历尽千辛万苦,我们终于到终点了!我真高兴。 可是哥哥却愁眉苦脸答道: 别高兴了,我才发现,咱们家的门钥匙,还在二十层的行李里哪!

我们每个人,都仿佛那爬楼的哥俩,二十层以前,就仿佛我们的二十岁以前,无忧无虑,把什么都看得轻巧容易。到了二十几岁,开始感觉到辛苦,想减轻负担, 就把行李能丢的丢掉,却忘记了那里面有你的钥匙--也就是人生梦想!三十岁了,抱怨更多,仿佛世界都在和自己作对。四十、五十岁,开始认命了。到了八十 岁,终于该结束这一生的时候,却发现,原来自己爬楼的一生是毫无意义--因为梦想早在二十几岁的时候丢掉。没有那梦想,请问你爬楼的目的是什么呢?那么辛 苦爬楼难道就是为了赶紧走完一生然后无意义死去?所以,虽然很多时候,我们都觉得包裹行李太麻烦,可是也请你不要丢弃它,因为里面藏着的梦想是你一生努力的意义之所在!

评论(0) 浏览(1912)

Powered by emlog 豫ICP备14014990号-1 sitemap