自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

书写人生

软件开发是个系统工程,除了语言、组件和接口,还有设计模式、设计思想等内容,只有充分分析业务逻辑,才能编写出切实可行的代码。

  • 博客(40)
  • 资源 (49)
  • 收藏
  • 关注

转载 微信支付提示:同一笔交易不能多次提交

微信支付API上说明:OUT_TRADE_NO_USED商户订单号重复同一笔交易不能多次提交请核实商户订单号是否重复提交测试的时候先用微信支付得到预支付id,取消当前支付,再次付款的时候就会提示:“订单号重复”网上搜了一下,大概共有三种解决办法:1、既然是订单号重复,那么再次付款的时候重新生成订单号就好了,但是很多时候一旦数据入库了就已经板上钉钉了,那么就有人想到既然不能动订单,那就建立第三表订单...

2018-03-31 12:35:08 2461

转载 php vue.js实现微信开放平台扫码登录

1、首先到微信开放平台申请https://open.weixin.qq.com/ 获取到appid和APPSECRET,前台显示页面如下<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head&a

2018-03-30 21:05:25 2420

转载 Vue2.0缓存

最近在做一个手机端的网站,遇到页面的缓存问题,自己由于经验不足,走了弯路。由于有些页面需要缓存,有些页面不需要。所以用全局缓存是不行的,必须要使用单页面的缓存。 单页面缓存 本案列适用于跳转到下一页然后回到当前页时需要显示第一次进入本页的信息。 1.在index.js配置路由的文件中设置:export default new Router( routes: [ { ...

2018-03-30 20:55:31 450

转载 微信强制请缓存和授权登录,vue框架

import store from './vuex/store'import cookie from './libs/cookie'// 路由预先判断router.beforeEach((to, from, next) => {  // 首先判断是否已有用户登录信息userInfo  if (store.state.user.info) {    next()  } else {    //...

2018-03-30 20:50:32 5921

转载 SQL重复记录查询

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId  from   people  group  by   peopleId  having  count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来...

2018-03-30 15:42:28 248

转载 微信公众号支付详细步骤(整理)

公司做公众号时需要接入微信支付,个人根据网上的demo摸索着完成了公司公众号的支付和退款功能。现也将代码分享出来,希望对需要朋友有帮助。 一.提交支付的toPay.jsp页面代码:<% String basePath = request.getScheme() + "://"+ request.getServerName() + request.getContextPath()+ "...

2018-03-29 15:24:51 730

转载 微信H5网页公众号支付教程附demo

开发之前请详细阅读微信公众号支付开发文档,并配置好服务器信息。 微信支付开发文档1.微信支付申请,开通微信商户平台。 2.开发配置,填写服务器地址。 3.在开发电脑上安装证书,用于设置获取商户秘钥。 4.设置获取秘钥。 开始开发 1.用户点击下面页面自动跳转到微信授权链接。 index.html<!DOCTYPE HTML><html> <head> ...

2018-03-29 15:23:06 6124 1

转载 微信支付公的众号支付和扫码支付

公众号支付是手机端的微信公众号H5页面支付,这种支付方式必须是在微信内置浏览器发起。扫码支付分为模式一和模式二,模式一主要为线下服务,该模式是先扫码,再生成订单,商户先为自己的商品生成二维码连接,然后用户扫码之后决定是否购买,二维码无过期时间,比如自动售卖机大多采用这种模式;模式二主要为线上电商服务,用户选择商品后生成订单,根据订单生成二维码,然后支付,该二维码为临时二维码。开发流程一、授权目录官...

2018-03-29 15:22:10 917

转载 html5+jquery获取微信openid

   最近在修改一个移动商城,由于wap端是HTML5的,还大量使用了art模板技术,一开始修改很不适应,而且实现HTML5取openid一直没能实现很好的实现,经过对获取原理的理解和学习,终于还是实现了HTML获取微信openid,而且改动不大,闲话少说,直接上干货:一、写个js,用于取accesscode,并直接通过openid读取用户表中的注册信息[javascript] view plai...

2018-03-27 09:31:43 11165 1

原创 使用vue开发微信公众号,解决微信缓存

1.页面加入标红的代码,让页面不缓存<!DOCTYPE html><html manifest="IGNORE.manifest"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=

2018-03-26 21:23:51 7745

转载 vue使用微信扫码登录的一点小总结

上个月用vue做一个管理台,后期登录改成了微信扫码登录。要说vue也是遇到了不小的困难,毕竟以前连js用的都不是很利索。不过今天想先写之前困扰了我好几天的微信登录。前期也参考了很多很多大神做的项目,但是由于本人才疏学浅所以有些地方免不了用一用自己的笨办法了,如果各位看官有什么更好的方法或者意见欢迎一起交流!!!在这里比较多的参考了这篇【点我】。啥都不说了,先上代码:[javascript] vie...

2018-03-26 21:06:50 10419 2

转载 VUE开发SPA之微信授权登录

SPA单页应用中微信授权登录的一点思路单页应用应该如何解决微信授权登录的尴尬跳转?后退无法返回?主要遇到的问题就是 先进入单页应用,一边渲染页面一边判断用户有没有登录,当判断到没有登录时异步数据请求已经发送出去了,然后要跳转到微信授权页面,这样就浪费了一次网络请求且用户可能要去点击这个数据了结果...跳走了!在授权成功后用户点击后退再次进行授权有没有???本文主要讲述对于单页应用应该在哪个阶段获取...

2018-03-26 20:42:28 1323

转载 vue 面试笔记

1.vue简介,vue是一个构建用户界面的框架。是一个轻量级mvv框架,和angular一样是所谓的双向数据绑定,数据驱动和组件化的前端开发,通过简单的api实现响应式的数据绑定和组合试图组件,容易上手,小巧。2.安装vue-devtools插件,便于在chrome中调试vue,配置是否允许vue-devtools检查代码,方便调试,生产环境设置为false,vue.config.devtools...

2018-03-26 08:26:17 650

转载 利用ESLint检查代码质量

JavaScript是一门神奇的动态语言,它在带给我们编程的灵活性的同时也悄悄埋下了一些地雷。除了基本的语法错误能在程序一启动的时候被检测到之外,很多隐含的错误都是在运行的时候才突然地蹦出来。除非你的程序有着100%的测试覆盖率,否则说不定哪天就会因为一个xxx is undefined而导致程序崩溃,而为了避免这样的错误可能你只需要在提交代码的时候用工具静态分析一下,仅此而已。ESLint是一个...

2018-03-26 08:20:11 4421

转载 如何编写一个 HTTP 反向代理服务器

如果你经常使用 Node.js 编写 Web 服务端程序,一定对使用 Nginx 作为 反向代理 服务并不陌生。在生产环境中,我们往往需要将程序部署到内网多台服务器上,在一台多核服务器上,为了充分利用所有 CPU 资源,也需要启动多个服务进程,它们分别监听不同的端口。然后使用 Nginx 作为反向代理服务器,接收来自用户浏览器的请求并转发到后端的多台 Web 服务器上。大概工作流程如下图:在 No...

2018-03-26 08:19:20 1936

原创 vue开发笔记

1.node.js安装成功后在键盘按下【win+R】键,输入cmd,然后回车,打开cmd窗口,输入node -v和npm -v即可显示当前安装的版本号,即表示安装成功2.安装cnpmnpm install -g cnpm --registry=http://registry.npm.taobao.org 然后等待。3.安装vue-cli命令:npm install -g vue-cli4.创建第一...

2018-03-24 22:54:44 341

转载 vue2.0的ajax

Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource目前主流的 Vue 项目,都选择 axios 来完成 ajax 请求,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求Vuex 的安装将不再赘述,可以参考之前的Vue.js实战之Vuex的入门教程使用 cnpm 安装 ax...

2018-03-24 22:52:57 1523

转载 Asp.net+Vue2构建简单记账WebApp之三(使用Vue-cli构建vue.js应用)

一、前提1、安装好node.js 2、安装好npm 3、安装好vue-cli如何安装这里就跳过,网上一大推。 当然装上npm的淘宝镜像更好二、构建项目1、进入项目文件夹2、生成项目执行 vue init webpack MyBill3、查看利用vue-cli 构建的文件夹如下4、初始化项目 cd mybill npm install5、 用node运行试试 npm run dev 执行后会自动打开...

2018-03-16 14:37:27 373 1

转载 Asp.net+Vue2构建简单记账WebApp之二(使用ABP迅速搭建.Net后台)

一、ABP简介ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。详情可以访问官网:http://www.aspnetboilerplate.com/二、下载模版访问:https://aspnetboi...

2018-03-16 14:36:51 830

转载 Asp.net+Vue2构建简单记账WebApp

一、前言作为一个asp.net 程序员,当发现Vue.js的存在时就爱上它,但是在asp.net应用中使用Vue一时让我无从上手。直到最近有了点心得。就计划把之前做的一个记账应用前端改为Vue2实现。二、 效果如下 这个是之前做一个小应用,使用asp.net+Mui做的,也算是前后台分离的。三、新程序的构思依然使用asp.net作为后台,因为就熟悉这个。前台选用Vue2.js。ui选用 mint-...

2018-03-16 14:36:29 478

原创 vue 组件之间数据传递

1、props:父组件 -->传值到子组件 app.vue是父组件 ,其它组件是子组件,把父组件值传递给子组件需要使用 =>props 在父组件(App.vue)定义一个属性(变量)sexVal = '男' 把该值传递给 子组件(B.vue),如下:App.vue<template> <div id="app"> <!--<ro...

2018-03-16 14:05:08 3075

转载 .net/vue.js配置

作者:杨小福首先要明白,vue 是浏览器端运行的,如果不考虑使用 vue 的服务端渲染功能,那么用什么样的后台框架都无所谓。从传统的后端渲染页面的模式转到使用 vue 在浏览器端渲染,有一个很大的不同就是数据获取的问题,即通过异步加载的方式(ajax)来获取数据而不在是后台直接打数据到框架结合的后台模板上进行渲染,这也是 Vue 这类前端框架的一个技术支撑点首先,去Visual Studio官网下...

2018-03-16 10:08:34 1098 1

转载 vue组件的3种书写形式

第一种使用script标签<!DOCTYPE html><html> <body> <div id="app"> <my-component></my-component> </div> <-- 注

2018-03-16 09:46:40 271

转载 Vue组件几种方式

vue组件实现Tab切换功能<!DOCTYPE html><html><head> <meta charset="utf-8"/> <title>Demo</title> <script src="https://cdn.bootcss.com/vue/2.4.1/vue

2018-03-16 09:46:00 565

转载 vue.js高仿饿了么(前期整理)

1、熟悉项目开发流程需求分析——>脚手架工具——>数据mock——>架构设计——>代码编写——>自测——>编译打包。2、熟悉代码规范从架构设计、组件抽象、模块拆分,到代码风格统一、CSS代码规范和JavaScript变量命名规范,以标准写代码,开发出扩展性、通用性强的优质代码。3、掌握Vue.js在实战中应用4、学会使用Vue.js完整地开发移动端App5、学会...

2018-03-16 09:24:47 6385 2

原创 vue 搜索 和新闻列表简单范例

<html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>无标题页</title>      <meta name="apple-mobile-web-app-capable" content="yes"><meta name=&quo

2018-03-16 09:22:32 2505

转载 网络爬虫学习软件篇-Python

很早就想学习一下网络爬虫了~苦于学艺不精并且过于懒惰以至于迟迟没有行动~最近因为项目做的也差不多了,就用空学习一下这门新的语言,了解一下新的技术。(PS:真的不会排版丑就丑点吧)上面所说的傻瓜式说明也不是吐槽在看的您~而是吐槽自己~害怕某一天忘了如何操作哈哈哈哈~言归正传往下看↓俗语说得好工欲善其事,必先利其器1.Python的下载下载地址:https://www.python.org/downl...

2018-03-16 09:17:19 1115

转载 weUI应用,用JS封装了几个常用的信息提示的弹层

weUI应用,自己用JS封装了几个常用的信息提示的弹层测试页面的代码在后面有贴出几个弹层如下图HTML页面代码://标题提醒文字弹层  function dialog(title , msg , callback){      var dialog1 , dialog2;      dialog1 = '\          <div class="weui_dialog_confirm" ...

2018-03-15 14:32:02 1112

转载 WEUI应用,用JS封装常用信息提示的弹层—Toast

<!DOCTYPE html><html lang="zh-cmn-Hans">    <head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalabl

2018-03-15 14:30:07 3660

转载 与his系统对接方案 自动分诊导医信息管理系

自动分诊导医信息管理系(医院版排队管理系统)软硬件已经过多次的版本更新,目前软件版本已升级至V3.0,并且软件已注册登记保护,“医院排队”作为一种全新的服务理念从此走进全国各地医院。“医院排队”无疑是这种全新服务理念的开创者和标志性品牌。“医院排队”作用:由于当今各行各业的信息化、智能化建设越来越普及,整个社会对各个行业的办事效率的要求越来越高,尤其是服务性行业,既要满足被服务人的服务需求,又要提...

2018-03-09 16:14:51 6922

转载 easyui dataGrid 动态添加列

<script>     var array =[];var columns=[];$.ajax({ url:_ctx+'/nodeManage/getMysqlFields', type:'POST', data:'id='+node['id'], success:function(data){//data后台的传过...

2018-03-08 20:28:09 4773 1

转载 关于 webservice 的SoapHeader 示例

SoapHeader是增强 webservice的安全性的。例如(支付、认证)1,写一个web service发布了服务器上。2,通过添加服务引用发布的webservice。3,调用。MyWebService的网站添加一个类继承 System.Web.Services.Protocols.SoapHeader  ; 作为传递使用的。using System;using System.Collect...

2018-03-06 08:25:18 7116

原创 C#开发 WebService 创建 XML

 /// <summary>    ///    /// </summary>    /// <param name="Input"></param>    /// <returns></returns>    [WebMethod(Description = "Query ")]    public

2018-03-05 15:31:58 1600

转载 C#开发XML WebService接口(SOAP)

using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Web;using System.Web.Services;using BX.Interface;namespace WebService{    /// ...

2018-03-03 01:47:11 1994

原创 C# webservice 生成XML 格式

   [WebMethod(Description = "记录状态")]    public void HelloWorld(string DD)    {StringBuilder soap = new StringBuilder();        soap.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");        s...

2018-03-03 00:46:26 3094

转载 C#使用SOAP获取webservice实例解析

本文主要参考如下两个链接,并整理: Java使用SOAP: http://www.cnblogs.com/linjiqin/archive/2012/05/07/2488880.html C# send soap and get response: http://stackoverflow.com/questions/4791794/client-to-send-soap-request-and-...

2018-03-02 21:55:58 4752 1

原创 c# webservice接口 输出xml

using System;using System.Web;using System.Collections;using System.Web.Services;using System.Web.Services.Protocols;using System.IO;using System.Xml.Serialization;using System.Text;using System.Colle...

2018-03-02 21:17:53 3111

原创 C#调用webservice 做成二次接口 webservice

在webservice端公开一个实体类,然后实例化,赋值,然后再给到webservice,可以实现,但是,即使调用端和service端的实体类完全一致,你也要重新实例化service端的,重新赋值,将此传回service端。因为,C#是强类型的语言。当然,你也可以通过下面的方法传递实体类,而不用太纠结于赋值了。在调用端序列化实体对象(实体对象须是可序列化的类): public static byt...

2018-03-02 18:06:09 682

转载 C#—StreamWriter、StreamReader和FileStream区别

本文主要讲解一下在文件的读取中,StreamWriter、StreamReader和FileStream分别有什么样的不同,废话少说,直接进入主题。一、StreamReader类的介绍 构造函数:[csharp] view plain copy<span style="white-space:pre;"> </span>StreamReader sw = new Strea...

2018-03-02 08:03:55 1817

转载 c# File、FileStream、StreamReader、StreamWriter

FileFile的用法如下:public void OperateFile(){ //example文件初始内容截图如图一 string filePath = @"e:\Study\test\example.txt"; if (File.Exists(filePath)) { //allText="蝈蝈first\r\n蝈蝈second\r\n蝈蝈third...

2018-03-02 08:01:52 760

NET图片加减法的验证码控件

NET图片加减法的验证码控件,、 this.CreateCheckCodeImage(GenerateCheckCode()); private string GenerateCheckCode() { int intFirst, intSec, intTemp; string checkCode = String.Empty; System.Random random = new Random(); intFirst = random.Next(1, 10); intSec = random.Next(1, 10); switch (random.Next(1, 3).ToString()) { case "2": if (intFirst < intSec) { intTemp = intFirst; intFirst = intSec; intSec = intTemp; } checkCode = "=" + intFirst + "-" + intSec; Session["ValidCode"] = intFirst - intSec; break; default: checkCode = "=" + intFirst + "+" + intSec; Session["ValidCode"] = intFirst + intSec; break; } //Response.Cookies.Add(new HttpCookie("ValidCode",Movie.Common.AES.EncryptAes(checkCode))); return checkCode; } #region 产生波形滤镜效果 private const double PI = 3.1415926535897932384626433832795; private const double PI2 = 6.283185307179586476925286766559; private System.Drawing.Bitmap TwistImage(Bitmap srcBmp, bool bXDir, double dMultValue, double dPhase) { System.Drawing.Bitmap destBmp = new Bitmap(srcBmp.Width, srcBmp.Height); // 将位图背景填充为白色 System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(destBmp); graph.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, destBmp.Width, destBmp.Height); graph.Dispose(); double dBaseAxisLen = bXDir ? (double)destBmp.Height : (double)destBmp.Width; for (int i = 0; i < destBmp.Width; i++) { for (int j = 0; j < destBmp.Height; j++) { double dx = 0; dx = bXDir ? (PI2 * (double)j) / dBaseAxisLen : (PI2 * (double)i) / dBaseAxisLen; dx += dPhase; double dy = Math.Sin(dx); // 取得当前点的颜色 int nOldX = 0, nOldY = 0; nOldX = bXDir ? i + (int)(dy * dMultValue) : i; nOldY = bXDir ? j : j + (int)(dy * dMultValue); System.Drawing.Color color = srcBmp.GetPixel(i, j); if (nOldX >= 0 && nOldX < destBmp.Width && nOldY >= 0 && nOldY < destBmp.Height) { destBmp.SetPixel(nOldX, nOldY, color); } } } return destBmp; } #endregion

2015-08-26

微信公众平台 网页授权获取用户基本信息(.net)

微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["reurl"].ToString(); } string code = ""; if (Request.QueryString["code"] != null && Request.QueryString["code"] != "") { //获取微信回传的code code = Request.QueryString["code"].ToString(); OAuth_Token Model = Get_token(code); //获取token OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token, Model.openid ); if(OAuthUser_Model.openid!=null && OAuthUser_Model.openid !="") //已获取得openid及其他信息 { //在页面上输出用户信息 Response.Write("用户OPENID:" + OAuthUser_Model.openid + "<br>用户昵称:" + OAuthUser_Model.nickname + "<br>性别:" + OAuthUser_Model.sex + "<br>所在省:" + OAuthUser_Model.province + "<br>所在市:" + OAuthUser_Model.city + "<br>所在国家:" + OAuthUser_Model.country + "<br>头像地址:" + OAuthUser_Model.headimgurl + "<br>用户特权信息:" + OAuthUser_Model.privilege); //或跳转到自己的页面,想怎么处理就怎么处理 Response.Redirect(reurl); } }

2015-08-14

响应式设计css+兼容手机+平板+电脑PC 跨屏响应式布局前端开发CSS框架

响应式css+兼容手机+平板+电脑PC 拼图跨屏响应式布局前端开发CSS框架-综合示例

2015-05-06

css兼容手机、平板、PC各种分辨率的网站

css兼容手机、平板、PC各种分辨率的网站,css兼容pc+平板+手机范例

2015-05-06

C#-Net判断微信内置浏览器网页

C# 。Net判断微信内置浏览器网页,微信内置浏览器打开的网页

2015-04-23

winform+Ui+高仿彗星小助手

小助手Demo】高仿彗星小助手-2014.8.26更新

2015-03-25

移动开发html5通讯录上拉加载下拉刷新

移动开发html5通讯录上拉加载下拉刷新

2015-03-24

读取excel中的数据并存入SQL_Server数据库.rar

excel 显示Datagriew 读取excel中的数据并存入SQL_Server数据库.rar

2015-03-23

App Framework Explained

App FrameWork是基于HTML5重写的jQuery框架,对其进行了简化,更有利于在移动设备上应用,并且速度比较流畅。 App FrameWork框架页面基本都在同一个HTML文档中,在内容区(#content)里面放置多个class为"panel"的p, 这里每个p即为一个页面。当panel设置selected="true"属性后,在应用打开之后默认加载该页面,其他都是隐藏的(display:none)。这些页面之间通过锚链接来跳转,并将目标页面的display设置为"block",同时给需要隐藏的页面一个向左移动的动画,加之panel页面使用绝对定位,宽度高度均铺满content,这样的跳转就达到了native应用页面切换的效果。在页面切换时,另外的动作就是将panel页面中已经定义的title属性中的值显示到导航中,并可以设置属性data-tab的值来选中对应的标签。

2015-03-23

winform Excel读取数据到 DataGridView

winform Excel读取数据到 DataGridView byte[] content; FileStream fs = File.OpenRead(open.FileName); content = new byte[fs.Length]; fs.Read(content, 0, content.Length); fs.Close(); string fileExName = open.FileName; strPath = fileExName; string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileExName + ";" + "Extended Properties=Excel 8.0;"; OleDbConnection con = new OleDbConnection(strConn); con.Open(); string[] names = GetExcelSheetNames(con, ShiftCount);

2015-03-17

Android+Fragment+TabHost模仿新浪新闻布局界面

Android+Fragment+TabHost模仿新浪新闻布局界面

2015-03-09

【Android】时光轴效果.rar

这是安卓开发正在学习的同学不容错过的一个比较好的学习资源。希望能够实践的同学别错过。

2015-03-09

Swift仿Twitter的导航条和页面

Swift仿Twitter的导航条和页面,可以自定义页面数量。 // // PagingNavController.swift // SwiftPagingNav // // Created by Aubrey & Chad on 10/31/14. // Copyright (c) 2014 Aubrey Johnson / Chad Timmerman. All rights reserved. // import UIKit class PagingNavController: UIViewController, UIScrollViewDelegate { var scrollView:UIScrollView! var pageControl:UIPageControl! var navbarView:UIView! var navTitleLabel1:UILabel! var navTitleLabel2:UILabel! var navTitleLabel3:UILabel! var view1:UIView! var view2:UIView! var view3:UIView! override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.lightGrayColor() //Creating some shorthand for these values var wBounds = self.view.bounds.width var hBounds = self.view.bounds.height // This houses all of the UIViews / content scrollView = UIScrollView() scrollView.backgroundColor = UIColor.clearColor() scrollView.frame = self.view.frame scrollView.pagingEnabled = true scrollView.showsHorizontalScrollIndicator = false scrollView.delegate = self scrollView.bounces = false self.view.addSubview(scrollView) self.scrollView.contentSize = CGSize(width: self.view.bounds.size.width * 3, height: hBounds/2) //Putting a subview in the navigationbar to hold the titles and page dots navbarView = UIView() self.navigationController?.navigationBar.addSubview(navbarView) //Paging control is added to a subview in the uinavigationcontroller pageControl = UIPageControl() pageControl.frame = CGRect(x: 0, y: 35, width: 0, height: 0) pageControl.backgroundColor = UIColor.whiteColor() pageControl.numberOfPages = 3 pageControl.currentPage = 0 pageControl.currentPageIndicatorTintColor = UIColor(red:0.325, green:0.667, blue:0.922, alpha: 1) pageControl.pageIndicatorTintColor = UIColor.whiteColor() self.navbarView.addSubview(pageControl) //Titles for the nav controller (also added to a subview in the uinavigationcontroller) //Setting size for the titles. FYI changing width will break the paging fades/movement var titleSize = CGRect(x: 0, y: 8, width: wBounds, height: 20) navTitleLabel1 = UILabel() navTitleLabel1.frame = titleSize navTitleLabel1.text = "Home" navTitleLabel1.textAlignment = NSTextAlignment.Center self.navbarView.addSubview(navTitleLabel1) navTitleLabel2 = UILabel() navTitleLabel2.frame = titleSize navTitleLabel2.text = "Discover" navTitleLabel2.textAlignment = NSTextAlignment.Center self.navbarView.addSubview(navTitleLabel2) navTitleLabel3 = UILabel() navTitleLabel3.frame = titleSize navTitleLabel3.text = "Activity" navTitleLabel3.textAlignment = NSTextAlignment.Center self.navbarView.addSubview(navTitleLabel3) //Views for the scrolling view //This is where the content of your views goes (or you can subclass these and add them to ScrollView) view1 = UIView() view1.backgroundColor = UIColor(red:0.325, green:0.667, blue:0.922, alpha: 1) view1.frame = CGRectMake(0, 0, wBounds, hBounds) self.scrollView.addSubview(view1) self.scrollView.bringSubviewToFront(view1) //Notice the x position increases per number of views view2 = UIView() view2.backgroundColor = UIColor(red:0.231, green:0.529, blue:0.757, alpha: 1) view2.frame = CGRectMake(wBounds, 0, wBounds, hBounds) self.scrollView.addSubview(view2) self.scrollView.bringSubviewToFront(view2) //Notice the x position increases yet again (wBounds * 2) view3 = UIView() view3.backgroundColor = UIColor(red:0.529, green:0.600, blue:0.647, alpha: 1) view3.frame = CGRectMake(wBounds * 2, 0, wBounds, hBounds) self.scrollView.addSubview(view3) self.scrollView.bringSubviewToFront(view3) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() navbarView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 44) } func scrollViewDidScroll(scrollView: UIScrollView) { var xOffset: CGFloat = scrollView.contentOffset.x //Setup some math to position the elements where we need them when the view is scrolled var wBounds = self.view.bounds.width var hBounds = self.view.bounds.height var widthOffset = wBounds / 100 var offsetPosition = 0 - xOffset/widthOffset //Apply the positioning values created above to the frame's position based on user's scroll navTitleLabel1.frame = CGRectMake(offsetPosition, 8, wBounds, 20) navTitleLabel2.frame = CGRectMake(offsetPosition + 100, 8, wBounds, 20) navTitleLabel3.frame = CGRectMake(offsetPosition + 200, 8, wBounds, 20) //Change the alpha values of the titles as they are scrolled navTitleLabel1.alpha = 1 - xOffset / wBounds if (xOffset <= wBounds) { navTitleLabel2.alpha = xOffset / wBounds } else { navTitleLabel2.alpha = 1 - (xOffset - wBounds) / wBounds } navTitleLabel3.alpha = (xOffset - wBounds) / wBounds } func scrollViewDidEndDecelerating(scrollView: UIScrollView) { var xOffset: CGFloat = scrollView.contentOffset.x //Change the pageControl dots depending on the page / offset values if (xOffset < 1.0) { pageControl.currentPage = 0 } else if (xOffset < self.view.bounds.width + 1) { pageControl.currentPage = 1 } else { pageControl.currentPage = 2 } } }

2015-03-09

swift编写简单的左右菜单栏

swift编写简单的左右菜单栏 // // MenuViewController.swift // Menu // // Created by innovane on 14-6-23. // Copyright (c) 2014年 innovane. All rights reserved. // import UIKit let kICSDrawerControllerLeftViewInitialOffset : CGFloat = 60.0 let kICSDrawerControllerDrawerDepth : CGFloat = 200.0 enum ICSDrawerControllerState : Int { case MenuControllerStateOpening case MenuControllerStateClosing } class MenuViewController: UIViewController { //用户点击center var tapGestureRecognizer : UITapGestureRecognizer! // 用户拖动视图 var panGestureRecognizer : UIPanGestureRecognizer! // 用户touch的点位置 var panGestureStartLocation : CGPoint! // 左边控制器 var leftViewController : UIViewController! //中间控制器 var centerViewController : UIViewController! var drawerState : ICSDrawerControllerState! init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) // Custom initialization } override func viewDidLoad() { super.viewDidLoad() self.drawerState = ICSDrawerControllerState.MenuControllerStateClosing; } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) // 将左边控制器加入导航栏中。 if self.leftViewController != nil{ if (self.leftViewController.view.superview == nil){ self.addChildViewController(self.leftViewController) self.view.insertSubview(self.leftViewController.view, atIndex:0) } } if self.centerViewController != nil{ if (self.centerViewController.view.superview == nil){ self.addChildViewController(self.centerViewController) self.view.addSubview(self.centerViewController.view) } } // 添加用户拖动事件。 self.panGestureRecognizer = UIPanGestureRecognizer() self.panGestureRecognizer.addTarget(self,action:"panGestureRecognized:"); self.centerViewController.view.addGestureRecognizer(self.panGestureRecognizer) } // 用户拖动视图调用代理方法。 func panGestureRecognized(panGestureRecognizer:UIPanGestureRecognizer){ // 用户对视图操控的状态。 var state = panGestureRecognizer.state; var location = panGestureRecognizer.locationInView(self.view) var velocity = panGestureRecognizer.velocityInView(self.view) switch (state) { case UIGestureRecognizerState.Began: // 记录用户开始点击的位置 self.panGestureStartLocation = location; println("Began") break; case UIGestureRecognizerState.Changed: println("Changed") var c = self.centerViewController.view.frame if (panGestureRecognizer.translationInView(self.centerViewController.view).x > 0){ if (self.drawerState == ICSDrawerControllerState.MenuControllerStateClosing){ c.origin.x = location.x - self.panGestureStartLocation.x; } }else if (panGestureRecognizer.translationInView(self.centerViewController.view).x > -kICSDrawerControllerDrawerDepth){ if (self.drawerState == ICSDrawerControllerState.MenuControllerStateOpening){ c.origin.x = panGestureRecognizer.translationInView(self.centerViewController.view).x+kICSDrawerControllerDrawerDepth } } self.centerViewController.view.frame = c ; break; case UIGestureRecognizerState.Ended: var c = self.centerViewController.view.frame // 表示用户需要展开 if (location.x - self.panGestureStartLocation.x > kICSDrawerControllerLeftViewInitialOffset){ self.didOpen() }else{ if (c.origin.x < (kICSDrawerControllerDrawerDepth - 40)){ self.didClose() }else{ self.didOpen() } } break; default: break; } } // 移除点击事件,添加拖动事件 func tapGestureRecognized(tapGestureRecognizer : UITapGestureRecognizer){ self.didClose(); } // 菜单栏打开 func didOpen(){ var c = self.centerViewController.view.frame c.origin.x = kICSDrawerControllerDrawerDepth; UIView.animateWithDuration(0.7,delay:0,usingSpringWithDamping:0.5,initialSpringVelocity:1.0,options:UIViewAnimationOptions.AllowUserInteraction,animations:{ self.centerViewController.view.frame = c ; },completion: { (finished: Bool) -> Void in }) self.drawerState = ICSDrawerControllerState.MenuControllerStateOpening //增加点击事件 if (self.tapGestureRecognizer == nil){ self.tapGestureRecognizer = UITapGestureRecognizer() self.tapGestureRecognizer.addTarget(self,action:"tapGestureRecognized:"); } self.centerViewController.view.addGestureRecognizer(self.tapGestureRecognizer) } // 菜单关闭 func didClose(){ if (self.drawerState == ICSDrawerControllerState.MenuControllerStateOpening){ self.drawerState = ICSDrawerControllerState.MenuControllerStateClosing self.centerViewController.view.removeGestureRecognizer(self.tapGestureRecognizer) } var c = self.centerViewController.view.frame c.origin.x = 0 UIView.animateWithDuration(0.5,delay:0,usingSpringWithDamping:0.9,initialSpringVelocity:1.0,options:UIViewAnimationOptions.AllowUserInteraction,animations:{ self.centerViewController.view.frame = c ; },completion: { (finished: Bool) -> Void in }) } }

2015-03-09

Android仿qq播放器.rar

Android仿qq播放器的代码,经过测试是一个不错的代码

2015-02-27

Android抢红包源码

Android抢红包源码。是一个很不错的代码

2015-02-27

Android调用webService显示地区

Android调用webService显示地区.能显示全国各个地区。访问WebService的工具类

2015-01-13

android手势滑动引导界面

android手势滑动引导界面.一个开机引导画面。类似微信第一次进入。

2015-01-13

Android播放器后台运行代码notification

Android播放器后台运行代码notification

2015-01-05

[安卓开源]高仿人人网客户端

[安卓开源]高仿人人网客户端.android 代码

2014-12-30

vue-element-admin-master.zip

vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。

2020-06-30

vue-jwt-demo-master.zip

vue通过jwt认证。import Vue from 'vue' import App from './App.vue' import Login from './component/Login.vue' import Home from './component/Home.vue' import VueRouter from 'vue-router' import VueResource from 'vue-resource' import auth from './auth/auth' Vue.use(VueRouter) Vue.use(VueResource) //在启动APP时进行校验是否有token auth.checkAuth() const routes= [ { path:'/',redirect:'/login' }, { path:'/login',component:Login }, { path:'/home',component:Home } ] const router = new VueRouter({ routes }) new Vue({ router, render: h => h(App) }).$mount('#app')

2020-06-30

vue-wechat-login-master.zip

vue微信授权登录,new Vue({ router, store, render: h => h(App) }).$mount('#app')

2020-06-30

js显示屏特效火车站高铁站列车时刻表切换特效.rar

显示屏特效火车站高铁站列车时刻表切换特效, 模拟数据库读取列车时刻表数据。然后随机在页面显示滚动结果

2020-04-12

HTML和CSS3制作的可编辑的微软Word样式文档

HTML和CSS3制作的可编辑的微软Word样式文档。该特效提供一组预定义的样式,用于在WEB页面中生成各种尺寸的Word样式的文档效果。它提供的样式包括: sheets-of-paper-a4.css:A4纸(21cm × 29.7cm) sheets-of-paper-a3.css:A3纸(29.7cm × 42cm) sheets-of-paper-usletter.css:US letter(21.6cm × 27.9cm) sheets-of-paper-uslegal.css:US legal(21.6cm × 35.6cm) sheets-of-paper-ustabloid.css:US tabloid(27.9cm × 43.2cm)

2020-04-09

百度地图聚合显示.zip

百度地图地区聚合显示房产数据。数据量较少,所以不是每一个区下面都有数据,只模拟造了少量数据,并且能显示所有行政边界。

2019-11-20

c# 文字转为拼音或者拼音首字母类TChinese

string result = TChinese.MakeSpellCode(strChinese, TChineseOptions.FirstLetterOnly); string result = TChinese.MakeSpellCode(strChinese, TChineseOptions.EnableUnicodeLetter);

2019-05-28

微信小程序 模仿coco的微信点餐系统

微信小程序

2018-01-13

dropload 下拉刷新 上拉加载 jquery 控件

domUp : { // 上方DOM domClass : 'dropload-up', domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>', domUpdate : '<div class="dropload-update">↑释放更新</div>', domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>' }, domDown : { // 下方DOM domClass : 'dropload-down', domRefresh : '<div class="dropload-refresh">↑上拉加载更多</div>', domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>', domNoData : '<div class="dropload-noData">暂无数据</div>' },

2017-09-26

快速排序Quicksort演示

日本程序员norahiko,写了一个排序算法的动画演示,非常有趣。排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。 目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。它是图灵奖得主C. A. R. Hoare(1934--)于1960时提出来的

2017-09-11

fullcalendar-1.6.4-feifei修改版

fullcalendar-1.6.4-feifei修改版

2017-08-21

weui 时间控件含全天 上午 下午 选择

weui 时间控件含全天 上午 下午 选择

2017-08-09

高仿微信企业号 基础应用审批样式weui

高仿微信企业号 基础应用审批样式weui

2017-08-08

winform DockPanel框架

DockPanel Suite是一个国外 winform框架开源项目

2017-06-02

微信小程序 购物车UI

医疗服务顾客满意度测评管理 原价45元 ¥41.00

2017-05-25

net-jquery-cookie 购物车 以及Cookie 存储示例

function storecookie(value){ $.cookie('name',value,{expires:1}); } function showcookie(name){ var cookieValue = $.cookie(name); $("#tvalue").val(cookieValue); } function deletecookie(name){ $.cookie(name,null); } function setDatecookie(date){ $.cookie('name','admin',{expires:date}); }

2017-05-25

NET DotNetZip 多文件压缩打包组件

在对多文件打包中用到了 DotNetZip 的方法来实现对多文件压缩打包,下载该文件,然后引用即可。

2017-02-17

PHP微信支付接口开发代码

PHP微信支付接口开发代码 <script type="text/javascript"> //调用微信JS api 支付 function jsApiCall() { WeixinJSBridge.invoke( "getBrandWCPayRequest", '.$jsApiParameters.', function(res){ //alert(res.err_msg); //WeixinJSBridge.log(res.err_msg); location.href = "http://www.xxx.com/wap/tmpl/member/order_list.html"; } ); } function callpay() { if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener("WeixinJSBridgeReady", jsApiCall, false); }else if (document.attachEvent){ document.attachEvent("WeixinJSBridgeReady", jsApiCall); document.attachEvent("onWeixinJSBridgeReady", jsApiCall); } }else{ jsApiCall(); } } callpay(); </script>

2016-03-06

iOS 新闻系统源代码

iOS 新闻系统源代码 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"city"]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"city"]; } CityItems *item = [_dataArray objectAtIndex:indexPath.row]; cell.textLabel.text = item.name; cell.textLabel.textColor = [UIColor whiteColor]; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ if ([self.delegate respondsToSelector:@selector(didSelectRow:andCityZip:)]){ CityItems *item = [_dataArray objectAtIndex:indexPath.row]; [self.delegate didSelectRow:self andCityZip:item.zip]; } }

2015-12-13

2004-2012网络工程师试题

2004-2012网络工程师试题

2015-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除