TAT.dnt腾讯AlloyTeam移动Web裁剪组件AlloyCrop正式开

简介

裁剪图片的应用场景有头像编辑、图像编辑,在移动端要配合手势以及进行触摸反馈来进行变形以确认用户的选区进行裁剪。AlloyCrop就是专注于裁剪图像的组件,目前服务于QQ相关的Web业务,今日正式对外开源。

传送门

Github地址:https://github.com/AlloyTeam/AlloyFinger/tree/master/alloy_crop

在线Demo演示:

项目截图

这里需要注意的是,圆形裁剪出的图片其实是正方形的,这里可以通过CSS3圆角边框自行设置为圆形的图片。

使用姿势

  • image_src为需要裁剪的图片的地址
  • circle为裁剪组件的样式,为可选参数,默认值是false。需要注意:当设置为true时候,width必须等于height。
  • width为裁剪区域的宽
  • height为裁剪区域的高
  • ok为点击确认按钮的回调函数,并且可以拿到裁剪完成的base64和裁剪所用的canvas
  • cancel为点击取消按钮的回调函数
  • ok_text为确认按钮的文本,可选。默认是 ok
  • cancel_text为取消按钮的文本,可选。默认是 cancel

Q&A

Q: 对比了下微信的头像裁剪,为什么基于Web的AlloyCrop比微信Native还要流畅?为什么?为什么?
A: 基于transformjsAlloyFinger打造的AlloyCrop必须流畅啊!
这里猜测下(因为看不到微信裁剪的源码),微信头像裁剪走的是软绘,transformjs走的是硬绘。

Q: 兼容性如何
A: 支持touchstart、touchmove、touchend、touchcancel以及CSS3 transform的设备的浏览器便可运行AlloyCrop….不一一列举..

Q: transformjs+AlloyFinger+ AlloyCrop 一共不到600行?为什么体积这么小?
A: 腾讯手Q内大量的web都会去不断地从各个维度进行性能优化。框架类库尺寸的大小就是其中很重要的一个维度,小文件明显加载更快,解析也更快,这是很直接的优化手段。100行代码能解决的问题绝对不会用1000行代码去解决。所以Hammerjs被我们抛弃了,各种CSS3的js库也被我们放弃。使用更加精简的、抽象层次更高的 transformjsAlloyFinger。具体为何如此小,可以看看源码。

Q: 腾讯内部有哪些项目在用?
A: 目前AlloyCrop主要是兴趣部落、QQ群等Web业务在用,刚刚开源出来,只要有裁剪图片的地方都会用到。AlloyFinger和transformjs拥有大量的项目在使用,包括公司外部的内部的以及国内的和国外的用户。

你值得拥有

Github地址:https://github.com/AlloyTeam/AlloyFinger/tree/master/alloy_crop

欢迎使用!

原创文章转载请注明:

转载自AlloyTeam:http://www.alloyteam.com/2016/11/tencent-alloyteam-alloycrop-official-mobile-web-clipping-components-open-source/

68ecshop 小京东 模板修改

0.顶部大幻灯(3张大图)/data/afficheimg/20150801gqmzob.jpg
/data/afficheimg/20150801wjgaiz.jpg
/data/afficheimg/20150801wwiypw.jpg

1.首页底部“400-078-5268”
\themes\68ecshopcom_360buy\library\page_footerindex.lbi

2.二三级页面底部“400-078-5268”
\themes\68ecshopcom_360buy\library\help.lbi

3.右侧导航二维码
\themes\68ecshopcom_360buy\library\site_bar.lbi(我的资产删除)
\themes\68ecshopcom_360buy\images\header\akd_weixin_qrcode_110x110.png

4.左侧1-8楼悬浮
\themes\68ecshopcom_360buy\library\left_bar.lbi

4.右侧在线销售
\themes\68ecshopcom_360buy\library\customer_service.lbi

5.首页大幻灯右侧的“招商入驻”“商城公告”
\themes\68ecshopcom_360buy\library\ order_type.lbi

6.注册登录页面左边图片
\themes\68ecshopcom_360buy\images\login\loginPic.jpg(登录)
\themes\68ecshopcom_360buy\images\login\registerPic.jpg(注册)

7.网站底部“版权修改”
版权修改:后台 → 模板管理 → 语言项编辑,在公共语言包中搜索“2005”

8.顶部手机版:
\themes\68ecshopcom_360buy\images\app.jpg
\themes\68ecshopcom_360buy\images\android.jpg

9.售后保障
\themes\68ecshopcom_360buy\library\baozhang.lbi
\temp\compiled\baozhang.lbi.php

10.顶部左侧logo
\themes\68ecshopcom_360buy\images\header\logo.jpg

11.修改顶部“欢迎光临”
\languages\zh_cn\common.php

12.顶部“登录”“注册”导航条位置
\themes\68ecshopcom_360buy\library\user_header.lbi\55行

14.产品详情页面修改
\themes\68ecshopcom_360buy\good.dwt 619-635行
621行—商品评价–my_comments.lbi
624行—售后保障–baozhang.lbi
628行—常见问题–common_problem.lbi
632行—团队优势–advantage.lbi

15.首页搜索的关键字
后台–商店设置–显示设置–首页搜索的关键字

16.产品页面—卖家:平台自营
\themes\68ecshopcom_360buy\library\ziying_info.lbi

17.首页“全部商品分类”–\themes\68ecshopcom_360buy\library\page_headerindex.lbi
产品页面“全部商品分类”–\themes\68ecshopcom_360buy\library\page_header.lbi

18.1F-8F 楼层产品修改
后台—模版管理–设置模版

19.首页顶部大幻灯–添加数量与修改
后台–系统设置–首页广告管理

20.首页导航条–“全部商品分类”右侧
后台–系统设置–自定义导航栏

21.顶部右侧搜索右侧的小图片
themes/68ecshopcom_360buy/images/TB14nYUFVXXXXbsXpXXD1MBIXXX-190-80.png

22.1-10楼层增加:\themes\68ecshopcom_360buy\index.dwt(1569-1728一组)
\themes\68ecshopcom_360buy\library\cat_goods.lbi 29行<!– {elseif $goods_cat.id eq 356} –>9F,新增楼层广告背景颜色,css:\themes\68ecshopcom_360buy\css\index.css 1024行
后台:模版管理–设置模版–分类下的商品(添加楼层)

后台:模版管理–设置模版

23.首页楼层(圆圈logo推荐):商品管理–商品分类–3级子分类–设置为首页推荐–热门

24.首页–精挑细选设置:后台–商品管理–商品列表–商品–其他信息–加入推荐–精品

25.首页–全部商品分类–默认为8层:\themes\68ecshopcom_360buy\library\header_tan.lbi 第三行 {if $smarty.foreach.cat0.iteration < 9} 修改数字9

26.左侧下面下滑过程中1F-8F:\themes\68ecshopcom_360buy\library\left_bar.lbi

27.首页,logo 搜索框 小广告 位置调整 \themes\68ecshopcom_360buy\library 190-196行(原来位置199行) \themes\68ecshopcom_360buy\css\68ecshop_commin.css 1255 1261 1228 行样式

28.首页logo位置调整css:\themes\68ecshopcom_360buy\css\68ecshop_commin.css 1043行

29.商城热卖:后台–商品管理–商品列表–热销(打勾)

30.商城–疯狂抢购–设置方法:后台–商品管理–商品列表–商品信息-通用信息–促销价(打勾)

CSS3文字与字体 嵌入字体@font-face

CSS3文字与字体 嵌入字体@font-face

@font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体。

语法:

@font-face { font-family : 字体名称; src : 字体文件在服务器上的相对或绝对路径; }

这样设置之后,就可以像使用普通字体一样在(font-*)中设置字体样式。

比如:

p { font-size :12px; font-family : “My Font”; /*必须项,设置@font-face中font-family同样的值*/ }

任务

在右侧代码编辑器窗口的第7行,输入正确内容使文字显示正确的字体。

index.html

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<title>嵌入字体</title>

<style type=”text/css”>

? {

font-family: “MOOC Font”;

src: url(“http://www.imooc.com/Amaranth-BoldItalic.otf”);

}

.demo {

width: 340px;

padding: 30px;

color: #566F89;

background: #000;

font-size:58px;

font-family: “MOOC Font”;

}

</style>

</head>

<body>

<div class=”demo”>IMOOC</div>

</body>

</html>

CSS3文字与字体 text-overflow 与 word-wrap 文字超出部分隐藏

CSS3文字与字体 text-overflow 与 word-wrap

text-overflow用来设置是否使用一个省略标记(…)标示对象内文本的溢出。

语法:

但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定义强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden),只有这样才能实现溢出文本显示省略号的效果,代码如下:

text-overflow:ellipsis;  overflow:hidden;  white-space:nowrap;

同时,word-wrap也可以用来设置文本行为,当前行超过指定容器的边界时是否断开转行。

语法:

normal为浏览器默认值,break-word设置在长单词或 URL地址内部进行换行,此属性不常用,用浏览器默认值即可。

任务

在右侧代码编辑器窗口的第8行,输入正确内容使文字溢出时显示为省略号。

index.html

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<title>text-overflow</title>

<style type=”text/css”>

.test_demo{

text-overflow:?;

overflow:hidden;

white-space:nowrap;

width:200px;

background:#ccc;

}

</style>

</head>

<body>

<div class=”test_demo”>

超酷的IT技术学习平台(我是省略号)

</div>

</body>

</html>

富帅实业 ecshop 修改模板 goods.dwt 切换属性 改变价格

 

第一步 723行 添加

document.getElementById(‘ECS_ATTR_PRICE’).innerHTML = res.result2;


function changePriceResponse(res)
{

if (res.err_msg.length > 0)
{
alert(res.err_msg);
}
else
{
document.forms['ECS_FORMBUY'].elements['number'].value = res.qty;

if (document.getElementById('ECS_GOODS_AMOUNT')){
document.getElementById('ECS_GOODS_AMOUNT').innerHTML = res.result;
document.getElementById('ECS_GOODS_AMOUNT_jf').innerHTML = res.result_jf;
document.getElementById('ECS_GOODS_AMOUNT_jf').innerHTML = res.result_jf;

//添加内容
document.getElementById('ECS_ATTR_PRICE').innerHTML = res.result2;

}
}
}

第二部  为对应的标签添加id   ECS_ATTR_PRICE

strong 标签 添加 id=”ECS_ATTR_PRICE”


<!--{if $goods.is_promote and $goods.gmt_end_time } 促销-->
<span class="price">促销价</span><strong id="ECS_ATTR_PRICE" class="p-price">{$goods.promote_price}</strong>
<!--{else}-->
<span class="price">售价</span><strong id="ECS_ATTR_PRICE" class="p-price">{$goods.shop_price_formated} </strong>
<!--{/if}-->
<!--{if $goods.is_promote and $goods.gmt_end_time } 促销-->
{insert_scripts files='lefttime.js'} <i></i><font class="f4" id="leftTime">{$lang.please_waiting}</font>
<!--{/if}-->

修改详情页图片宽度

themes/68ecshopcom_360buy/css/pshow.css


.right .detail-content td img,.right .detail-content p img{vertical-align:top;}

改成

.right .detail-content td img,.right .detail-content p img{vertical-align:top;width: 100%;}
添加
.right .detail-content img{width: 100%;}


#preview {
Z-INDEX: 4;
LEFT: 0px;
/* WIDTH: 400px; */
WIDTH: 410px;
POSITION: absolute;
TOP: 0px;
}

/* 小李添加 */
#preview .goods_img img {
width: 400px;
height: 400px;
}
/* 小李添加 */
.goods_img {
/*padding: 10px;*/
/*width: 380px;*/
padding: 5px;
width: 400px;
border: 1px solid #DDD;
}

 

 

weui/weui WeUI logo专为微信设计的 UI 库 WeUI 为微信 Web 服务量身设计

概述

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一。包含buttoncelldialogprogresstoastarticleactionsheeticon等各式元素。

手机预览

https://weui.io

https://weui.io

老版本: https://weui.io/0.4.x

文档

扩展

License

The MIT License(http://opensource.org/licenses/MIT)

请自由地享受和参与开源

贡献

如果你有好的意见或建议,欢迎给我们提issue或pull request,为提升微信web体验贡献力量

weui/weui-design

简介

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。

WeUI-Design 是微信官方设计团队设计的一套同微信原生视觉体验一致的基础视觉样式库,目前提供 Sketch 与 PSD 基础样式库源文件。开发者或设计师可以使用 WeUI-Design 进行微信 Web 开发的原型设计、视觉设计等。

下载

WeUI-Design.zip

环境依赖

Sketch 版本

建议不低于 v40

PhotoShop

建议不低于 CS5

字体

iOS

  • 苹方 / PingFang SC( Mac OS X EI Caption ,版本10 .11及以上系统内置 )
  • SF UI Display( 需Apple官网下载,地址:https://developer.apple.com/fonts/

Android

  • 思源黑体 / NotoSans CJK SC(附件有资源)
  • Robot(附件有资源)

Sketch 使用说明

方法一

复制粘贴控件图层进行创作

usage1

方法二

使用Symbol进行快速创作,可方便的在多个页面和画板中重复运用控件

usage2

PSD 使用说明

下载使用

使用须知

WeUI-Design 是微信官方设计团队作品,知识产权等相关权利归腾讯公司所有。使用前,请阅读以下使用须知及法律声明。对于违反使用须知及法律声明的行为,我们将保留法律追究权利。

我们鼓励

  • 使用 WeUI-Design 的控件,进行适当地再次加工创作,形成自己的作品

我们禁止

  • 未经允许直接利用 WeUI-Design 作品开展牟利行为,包括但不限于打包售卖、另行建立镜像收取费用、有偿下载、积分下载等行为

法律声明

  1. 腾讯公司是本帐号及其下项目的知识产权权利人。
  2. 本帐号下所有项目及相关所有信息的一切著作权、商标权、专利权、商业秘密等知识产权(包括但不限于文字、图片、音频、视频、图表、界面设计、版面框架、有关数据或电子文档等)均受中华人民共和国法律法规和相应的国际条约保护,腾讯享有上述知识产权,但相关权利人依照法律规定应享有的权利除外。
  3. 未经腾讯或相关权利人书面同意,你不得以直接盈利为目的自行或许可任何第三方直接售卖本帐号下项目数据,或者建立收费镜像下载本帐号下项目数据等。
  4. 腾讯公司欢迎其它方式的使用,包括在本帐号下项目的基础上进行再加工、衍生、演绎,形成其它作品或将其作为作品的元素。

Notice

  1. Tencent is the owner of all Intellectual property rights of this account and all projects posted under this account.
  2. All intellectual property rights, including but not limited to copyright, trademark, patent, trade secret , of all projects and all relevant information (including, but not limited to text, image, audio, video, graphics, interface design, layout framework, relevant data or electronic documents and etc.) posted under this account are governed and protected by laws and regulations of P.R.China and applicable international treaties, Tencent has all the intellectual property aforesaid, except for those rights that owned by any third party in accordance with applicable laws.
  3. Without written consent of Tencent or applicable rights owner, you shall not sell or permit any third party to sell any project data posted under this account, or establish mirror of the same for sale.
  4. Other lawful and reasonable use of information or data posted under this account are encouraged, including reproducing such information or data; preparing derivative works based on such information or data, or incorporating such data or information into other works or projects.

 

https://github.com/weui/weui-design

php文件hash算法,秒传原理 哈希值


header('Content-type:text/html;Charset=UTF-8');

define('blockSize', 4*1024*1024);

var_dump(fileHash('test.wmv'));
var_dump(fileHash('asdf.wmv'));

function fileHash($file)
{
$f = fopen($file, "r");
if (!$f) exit("open $file error");

$fileSize = filesize($file);
$buffer = '';
$sha = '';
// 一共有多少分片
$blkcnt = $fileSize/blockSize;
if ($fileSize % blockSize) $blkcnt += 1;
// 把数据装入一个二进制字符串
$buffer .= pack("L", $blkcnt);
if ($fileSize <= blockSize) {
$content = fread($f, blockSize);
if (!$content) {
fclose($f);
exit("read file error");
}
$sha .= sha1($content, TRUE);
} else {
for($i=0; $i<$blkcnt; $i+=1) {
$content = fread($f, blockSize);
if (!$content) {
if (feof($f)) break;
fclose($f);
exit("read file error");
}
$sha .= sha1($content, TRUE);
}
$sha = sha1($sha, TRUE);
}
$buffer .= $sha;
$hash = urlSafeEncode(base64_encode($buffer));
fclose($f);
return array($hash, null);
}

function urlSafeEncode($data)
{
$find = array('+', '/');
$replace = array('-', '_');
return str_replace($find, $replace, $data);
}

linux中nginx如何配置一个ip多个域名

nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里。
一、每个域名一个文件的写法
首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.rodine.org 则在此目录建一个文件:www.rodine.org.conf然后在此文件中写规则,如:server

1
2
3
4
5
6
7
{
listen 80;
server_name www.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
}

然后重起nginx服务器,域名就绑定成功了nginx服务器重起命令:/etc/init.d/nginx restart
二、一个文件多个域名的写法
一个文件添加多个域名的规则也是一样,只要把上面单个域名重复写下来就ok了,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server
{
listen 80;
server_name www.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
}server
{
listen 80;
server_name msn.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/msn.rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
}

三、不带www的域名加301跳转
如果不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不用写网站目录,而是进行301跳转,如:

1
2
3
4
5
6
server
{
listen 80;
server_namerodine.org;
rewrite ^/(.*) http://www.rodine.org/$1 permanent;
}

四、添加404网页

添加404网页,都可又直接在里面添加,如:

1
2
3
4
5
6
7
8
9
server
{
listen 80;
server_name www.rodine.org; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/rodine.org; #网站根目录
include location.conf; #调用其他规则,也可去除
error_page 404 /404.html;
}

学会上面四种规则方法,基本就可以自己独立解决nginx 多域名配置问题了