Authored by 2586703@qq.com

modify to diff

Too many changes to show.

To preserve performance only 40 of 40+ files are displayed.

... ... @@ -2,8 +2,6 @@
.idea/
.ipr
.iws
*~
~*
*.diff
*.patch
*.bak
... ...
require 'compass/import-once/activate'
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "dist"
sass_dir = "sass"
images_dir = "images"
javascripts_dir = "js"
fonts_dir = "assets/fonts"
# You can select your preferred output style here (can be overridden via the command line):
# output_style = :expanded or :nested or :compact or :compressed
output_style = :compressed
# To enable relative paths to assets via compass helper functions. Uncomment:
relative_assets = true
# To disable debugging comments that display the original location of your selectors. Uncomment:
line_comments = false
# If you prefer the indented syntax, you might want to regenerate this
# project again passing --syntax sass, or you can uncomment this:
# preferred_syntax = :sass
# and then run:
# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
require 'compass/import-once/activate'
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "dist"
sass_dir = "sass"
images_dir = "images"
javascripts_dir = "js"
fonts_dir = "assets/fonts"
# You can select your preferred output style here (can be overridden via the command line):
# output_style = :expanded or :nested or :compact or :compressed
output_style = :compressed
# To enable relative paths to assets via compass helper functions. Uncomment:
relative_assets = true
# To disable debugging comments that display the original location of your selectors. Uncomment:
line_comments = false
# If you prefer the indented syntax, you might want to regenerate this
# project again passing --syntax sass, or you can uncomment this:
# preferred_syntax = :sass
# and then run:
# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
Encoding.default_external = "utf-8"
\ No newline at end of file
... ...
/*
* @description: home js
* @author: lore-w
* @date: 2015-4-23
*/
var $ = require('jquery'),
swiper = require('swiper-mobile');
exports.init = function () {
};
\ No newline at end of file
... ...
/*
* @description: magazine js
* @author: lore-w
* @date: 2015-4-23
*/
var $ = require('jquery'),
swiper = require('swiper-mobile');
exports.init = function () {
// magazine banner
var magazineSwiper = new swiper('.magazine-banner .swiper-container',{
loop: true,
pagination: '.pagination',
grabCursor: true,
paginationClickable: true,
autoplay: 5000,
slideElement: 'li'
});
// 立即购买下方的slide
var buySwiper = new swiper('#buy-slide',{
slidesPerView: 'auto',
grabCursor: true,
slideElement: 'li',
wrapperClass:"buy-wrapper"
});
// zine slide
var zineSwiper = new swiper('#zine-slide',{
slidesPerView: 'auto',
grabCursor: true,
slideElement: 'li',
wrapperClass:"zine-wrapper"
});
};
\ No newline at end of file
... ...
/*
* @description: common js
* @author: lore-w
* @date: 2015-4-23
*/
var $ = require('jquery'),
swiper = require('swiper-mobile');
require('jgestures');
// 初始化页面
exports.init = function () {
// nav
var navSwiper = new swiper('.girl-nav',{
grabCursor: true,
slidesPerView: 'auto',
slideElement: 'li',
hashnav: true
});
// channel page banner
var channelSwiper = new swiper('.banner .swiper-container',{
loop: true,
pagination: '.pagination',
grabCursor: true,
paginationClickable: true,
autoplay: 5000,
slideElement: 'li'
});
// download app
var downBtn = $('.home-download').find('.down-btn');
if (downBtn.length > 0) {
if (getDeviceType().isIphone) {
downBtn.each(function (index) {
$(this).attr('href', $(this).attr('data-ios'));
});
}
if (getDeviceType().isAndroid) {
downBtn.each(function (index) {
$(this).attr('href', $(this).attr('data-android'));
});
}
}
// back to top
$('.come-back').bind('tapone',function () {
$('body').animate({scrollTop: 0});
});
};
/*
* @description: 获取设备类型
* @param: none
* @return: JSON
*/
function getDeviceType () {
var sUserAgent = navigator.userAgent.toLowerCase(),
bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os",
bIsAndroid = sUserAgent.match(/android/i) == "android",
bIsWeixin = sUserAgent.match(/MicroMessenger/i) == 'micromessenger';
return {
isIphone: bIsIphoneOs,
isAndroid: bIsAndroid,
isWeixin: bIsWeixin
}
}
exports.getDeviceType = getDeviceType;
\ No newline at end of file
... ...
/**
* Sea.js 3.0.0 | seajs.org/LICENSE.md
*/
(function(global, undefined) {
// Avoid conflicting when `sea.js` is loaded multiple times
if (global.seajs) {
return
}
var seajs = global.seajs = {
// The current version of Sea.js being used
version: "3.0.0"
}
var data = seajs.data = {}
/**
* util-lang.js - The minimal language enhancement
*/
function isType(type) {
return function(obj) {
return {}.toString.call(obj) == "[object " + type + "]"
}
}
var isObject = isType("Object")
var isString = isType("String")
var isArray = Array.isArray || isType("Array")
var isFunction = isType("Function")
var _cid = 0
function cid() {
return _cid++
}
/**
* util-events.js - The minimal events support
*/
var events = data.events = {}
// Bind event
seajs.on = function(name, callback) {
var list = events[name] || (events[name] = [])
list.push(callback)
return seajs
}
// Remove event. If `callback` is undefined, remove all callbacks for the
// event. If `event` and `callback` are both undefined, remove all callbacks
// for all events
seajs.off = function(name, callback) {
// Remove *all* events
if (!(name || callback)) {
events = data.events = {}
return seajs
}
var list = events[name]
if (list) {
if (callback) {
for (var i = list.length - 1; i >= 0; i--) {
if (list[i] === callback) {
list.splice(i, 1)
}
}
}
else {
delete events[name]
}
}
return seajs
}
// Emit event, firing all bound callbacks. Callbacks receive the same
// arguments as `emit` does, apart from the event name
var emit = seajs.emit = function(name, data) {
var list = events[name]
if (list) {
// Copy callback lists to prevent modification
list = list.slice()
// Execute event callbacks, use index because it's the faster.
for(var i = 0, len = list.length; i < len; i++) {
list[i](data)
}
}
return seajs
}
/**
* util-path.js - The utilities for operating path such as id, uri
*/
var DIRNAME_RE = /[^?#]*\//
var DOT_RE = /\/\.\//g
var DOUBLE_DOT_RE = /\/[^/]+\/\.\.\//
var MULTI_SLASH_RE = /([^:/])\/+\//g
// Extract the directory portion of a path
// dirname("a/b/c.js?t=123#xx/zz") ==> "a/b/"
// ref: http://jsperf.com/regex-vs-split/2
function dirname(path) {
return path.match(DIRNAME_RE)[0]
}
// Canonicalize a path
// realpath("http://test.com/a//./b/../c") ==> "http://test.com/a/c"
function realpath(path) {
// /a/b/./c/./d ==> /a/b/c/d
path = path.replace(DOT_RE, "/")
/*
@author wh1100717
a//b/c ==> a/b/c
a///b/////c ==> a/b/c
DOUBLE_DOT_RE matches a/b/c//../d path correctly only if replace // with / first
*/
path = path.replace(MULTI_SLASH_RE, "$1/")
// a/b/c/../../d ==> a/b/../d ==> a/d
while (path.match(DOUBLE_DOT_RE)) {
path = path.replace(DOUBLE_DOT_RE, "/")
}
return path
}
// Normalize an id
// normalize("path/to/a") ==> "path/to/a.js"
// NOTICE: substring is faster than negative slice and RegExp
function normalize(path) {
var last = path.length - 1
var lastC = path.charCodeAt(last)
// If the uri ends with `#`, just return it without '#'
if (lastC === 35 /* "#" */) {
return path.substring(0, last)
}
return (path.substring(last - 2) === ".js" ||
path.indexOf("?") > 0 ||
lastC === 47 /* "/" */) ? path : path + ".js"
}
var PATHS_RE = /^([^/:]+)(\/.+)$/
var VARS_RE = /{([^{]+)}/g
function parseAlias(id) {
var alias = data.alias
return alias && isString(alias[id]) ? alias[id] : id
}
function parsePaths(id) {
var paths = data.paths
var m
if (paths && (m = id.match(PATHS_RE)) && isString(paths[m[1]])) {
id = paths[m[1]] + m[2]
}
return id
}
function parseVars(id) {
var vars = data.vars
if (vars && id.indexOf("{") > -1) {
id = id.replace(VARS_RE, function(m, key) {
return isString(vars[key]) ? vars[key] : m
})
}
return id
}
function parseMap(uri) {
var map = data.map
var ret = uri
if (map) {
for (var i = 0, len = map.length; i < len; i++) {
var rule = map[i]
ret = isFunction(rule) ?
(rule(uri) || uri) :
uri.replace(rule[0], rule[1])
// Only apply the first matched rule
if (ret !== uri) break
}
}
return ret
}
var ABSOLUTE_RE = /^\/\/.|:\//
var ROOT_DIR_RE = /^.*?\/\/.*?\//
function addBase(id, refUri) {
var ret
var first = id.charCodeAt(0)
// Absolute
if (ABSOLUTE_RE.test(id)) {
ret = id
}
// Relative
else if (first === 46 /* "." */) {
ret = (refUri ? dirname(refUri) : data.cwd) + id
}
// Root
else if (first === 47 /* "/" */) {
var m = data.cwd.match(ROOT_DIR_RE)
ret = m ? m[0] + id.substring(1) : id
}
// Top-level
else {
ret = data.base + id
}
// Add default protocol when uri begins with "//"
if (ret.indexOf("//") === 0) {
ret = location.protocol + ret
}
return realpath(ret)
}
function id2Uri(id, refUri) {
if (!id) return ""
id = parseAlias(id)
id = parsePaths(id)
id = parseAlias(id)
id = parseVars(id)
id = parseAlias(id)
id = normalize(id)
id = parseAlias(id)
var uri = addBase(id, refUri)
uri = parseAlias(uri)
uri = parseMap(uri)
return uri
}
// For Developers
seajs.resolve = id2Uri;
// Check environment
var isWebWorker = typeof window === 'undefined' && typeof importScripts !== 'undefined' && isFunction(importScripts);
// Ignore about:xxx and blob:xxx
var IGNORE_LOCATION_RE = /^(about|blob):/;
var loaderDir;
// Sea.js's full path
var loaderPath;
// Location is read-only from web worker, should be ok though
var cwd = (!location.href || IGNORE_LOCATION_RE.test(location.href)) ? '' : dirname(location.href);
if (isWebWorker) {
// Web worker doesn't create DOM object when loading scripts
// Get sea.js's path by stack trace.
var stack;
try {
var up = new Error();
throw up;
} catch (e) {
// IE won't set Error.stack until thrown
stack = e.stack.split('\n');
}
// First line is 'Error'
stack.shift();
var m;
// Try match `url:row:col` from stack trace line. Known formats:
// Chrome: ' at http://localhost:8000/script/sea-worker-debug.js:294:25'
// FireFox: '@http://localhost:8000/script/sea-worker-debug.js:1082:1'
// IE11: ' at Anonymous function (http://localhost:8000/script/sea-worker-debug.js:295:5)'
// Don't care about older browsers since web worker is an HTML5 feature
var TRACE_RE = /.*?((?:http|https|file)(?::\/{2}[\w]+)(?:[\/|\.]?)(?:[^\s"]*)).*?/i
// Try match `url` (Note: in IE there will be a tailing ')')
var URL_RE = /(.*?):\d+:\d+\)?$/;
// Find url of from stack trace.
// Cannot simply read the first one because sometimes we will get:
// Error
// at Error (native) <- Here's your problem
// at http://localhost:8000/_site/dist/sea.js:2:4334 <- What we want
// at http://localhost:8000/_site/dist/sea.js:2:8386
// at http://localhost:8000/_site/tests/specs/web-worker/worker.js:3:1
while (stack.length > 0) {
var top = stack.shift();
m = TRACE_RE.exec(top);
if (m != null) {
break;
}
}
var url;
if (m != null) {
// Remove line number and column number
// No need to check, can't be wrong at this point
var url = URL_RE.exec(m[1])[1];
}
// Set
loaderPath = url
// Set loaderDir
loaderDir = dirname(url || cwd);
// This happens with inline worker.
// When entrance script's location.href is a blob url,
// cwd will not be available.
// Fall back to loaderDir.
if (cwd === '') {
cwd = loaderDir;
}
}
else {
var doc = document
var scripts = doc.scripts
// Recommend to add `seajsnode` id for the `sea.js` script element
var loaderScript = doc.getElementById("seajsnode") ||
scripts[scripts.length - 1]
function getScriptAbsoluteSrc(node) {
return node.hasAttribute ? // non-IE6/7
node.src :
// see http://msdn.microsoft.com/en-us/library/ms536429(VS.85).aspx
node.getAttribute("src", 4)
}
loaderPath = getScriptAbsoluteSrc(loaderScript)
// When `sea.js` is inline, set loaderDir to current working directory
loaderDir = dirname(loaderPath || cwd)
}
/**
* util-request.js - The utilities for requesting script and style files
* ref: tests/research/load-js-css/test.html
*/
if (isWebWorker) {
function requestFromWebWorker(url, callback, charset) {
// Load with importScripts
var error;
try {
importScripts(url);
} catch (e) {
error = e;
}
callback(error);
}
// For Developers
seajs.request = requestFromWebWorker;
}
else {
var doc = document
var head = doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement
var baseElement = head.getElementsByTagName("base")[0]
var currentlyAddingScript
function request(url, callback, charset) {
var node = doc.createElement("script")
if (charset) {
var cs = isFunction(charset) ? charset(url) : charset
if (cs) {
node.charset = cs
}
}
addOnload(node, callback, url)
node.async = true
node.src = url
// For some cache cases in IE 6-8, the script executes IMMEDIATELY after
// the end of the insert execution, so use `currentlyAddingScript` to
// hold current node, for deriving url in `define` call
currentlyAddingScript = node
// ref: #185 & http://dev.jquery.com/ticket/2709
baseElement ?
head.insertBefore(node, baseElement) :
head.appendChild(node)
currentlyAddingScript = null
}
function addOnload(node, callback, url) {
var supportOnload = "onload" in node
if (supportOnload) {
node.onload = onload
node.onerror = function() {
emit("error", { uri: url, node: node })
onload(true)
}
}
else {
node.onreadystatechange = function() {
if (/loaded|complete/.test(node.readyState)) {
onload()
}
}
}
function onload(error) {
// Ensure only run once and handle memory leak in IE
node.onload = node.onerror = node.onreadystatechange = null
// Remove the script to reduce memory leak
if (!data.debug) {
head.removeChild(node)
}
// Dereference the node
node = null
callback(error)
}
}
// For Developers
seajs.request = request
}
var interactiveScript
function getCurrentScript() {
if (currentlyAddingScript) {
return currentlyAddingScript
}
// For IE6-9 browsers, the script onload event may not fire right
// after the script is evaluated. Kris Zyp found that it
// could query the script nodes and the one that is in "interactive"
// mode indicates the current script
// ref: http://goo.gl/JHfFW
if (interactiveScript && interactiveScript.readyState === "interactive") {
return interactiveScript
}
var scripts = head.getElementsByTagName("script")
for (var i = scripts.length - 1; i >= 0; i--) {
var script = scripts[i]
if (script.readyState === "interactive") {
interactiveScript = script
return interactiveScript
}
}
}
/**
* util-deps.js - The parser for dependencies
* ref: tests/research/parse-dependencies/test.html
* ref: https://github.com/seajs/searequire
*/
function parseDependencies(s) {
if(s.indexOf('require') == -1) {
return []
}
var index = 0, peek, length = s.length, isReg = 1, modName = 0, parentheseState = 0, parentheseStack = [], res = []
while(index < length) {
readch()
if(isBlank()) {
}
else if(isQuote()) {
dealQuote()
isReg = 1
}
else if(peek == '/') {
readch()
if(peek == '/') {
index = s.indexOf('\n', index)
if(index == -1) {
index = s.length
}
}
else if(peek == '*') {
index = s.indexOf('*/', index)
if(index == -1) {
index = length
}
else {
index += 2
}
}
else if(isReg) {
dealReg()
isReg = 0
}
else {
index--
isReg = 1
}
}
else if(isWord()) {
dealWord()
}
else if(isNumber()) {
dealNumber()
}
else if(peek == '(') {
parentheseStack.push(parentheseState)
isReg = 1
}
else if(peek == ')') {
isReg = parentheseStack.pop()
}
else {
isReg = peek != ']'
modName = 0
}
}
return res
function readch() {
peek = s.charAt(index++)
}
function isBlank() {
return /\s/.test(peek)
}
function isQuote() {
return peek == '"' || peek == "'"
}
function dealQuote() {
var start = index
var c = peek
var end = s.indexOf(c, start)
if(end == -1) {
index = length
}
else if(s.charAt(end - 1) != '\\') {
index = end + 1
}
else {
while(index < length) {
readch()
if(peek == '\\') {
index++
}
else if(peek == c) {
break
}
}
}
if(modName) {
res.push(s.slice(start, index - 1))
modName = 0
}
}
function dealReg() {
index--
while(index < length) {
readch()
if(peek == '\\') {
index++
}
else if(peek == '/') {
break
}
else if(peek == '[') {
while(index < length) {
readch()
if(peek == '\\') {
index++
}
else if(peek == ']') {
break
}
}
}
}
}
function isWord() {
return /[a-z_$]/i.test(peek)
}
function dealWord() {
var s2 = s.slice(index - 1)
var r = /^[\w$]+/.exec(s2)[0]
parentheseState = {
'if': 1,
'for': 1,
'while': 1,
'with': 1
}[r]
isReg = {
'break': 1,
'case': 1,
'continue': 1,
'debugger': 1,
'delete': 1,
'do': 1,
'else': 1,
'false': 1,
'if': 1,
'in': 1,
'instanceof': 1,
'return': 1,
'typeof': 1,
'void': 1
}[r]
modName = /^require\s*\(\s*(['"]).+?\1\s*\)/.test(s2)
if(modName) {
r = /^require\s*\(\s*['"]/.exec(s2)[0]
index += r.length - 2
}
else {
index += /^[\w$]+(?:\s*\.\s*[\w$]+)*/.exec(s2)[0].length - 1
}
}
function isNumber() {
return /\d/.test(peek)
|| peek == '.' && /\d/.test(s.charAt(index))
}
function dealNumber() {
var s2 = s.slice(index - 1)
var r
if(peek == '.') {
r = /^\.\d+(?:E[+-]?\d*)?\s*/i.exec(s2)[0]
}
else if(/^0x[\da-f]*/i.test(s2)) {
r = /^0x[\da-f]*\s*/i.exec(s2)[0]
}
else {
r = /^\d+\.?\d*(?:E[+-]?\d*)?\s*/i.exec(s2)[0]
}
index += r.length - 1
isReg = 0
}
}
/**
* module.js - The core of module loader
*/
var cachedMods = seajs.cache = {}
var anonymousMeta
var fetchingList = {}
var fetchedList = {}
var callbackList = {}
var STATUS = Module.STATUS = {
// 1 - The `module.uri` is being fetched
FETCHING: 1,
// 2 - The meta data has been saved to cachedMods
SAVED: 2,
// 3 - The `module.dependencies` are being loaded
LOADING: 3,
// 4 - The module are ready to execute
LOADED: 4,
// 5 - The module is being executed
EXECUTING: 5,
// 6 - The `module.exports` is available
EXECUTED: 6,
// 7 - 404
ERROR: 7
}
function Module(uri, deps) {
this.uri = uri
this.dependencies = deps || []
this.deps = {} // Ref the dependence modules
this.status = 0
this._entry = []
}
// Resolve module.dependencies
Module.prototype.resolve = function() {
var mod = this
var ids = mod.dependencies
var uris = []
for (var i = 0, len = ids.length; i < len; i++) {
uris[i] = Module.resolve(ids[i], mod.uri)
}
return uris
}
Module.prototype.pass = function() {
var mod = this
var len = mod.dependencies.length
for (var i = 0; i < mod._entry.length; i++) {
var entry = mod._entry[i]
var count = 0
for (var j = 0; j < len; j++) {
var m = mod.deps[mod.dependencies[j]]
// If the module is unload and unused in the entry, pass entry to it
if (m.status < STATUS.LOADED && !entry.history.hasOwnProperty(m.uri)) {
entry.history[m.uri] = true
count++
m._entry.push(entry)
if(m.status === STATUS.LOADING) {
m.pass()
}
}
}
// If has passed the entry to it's dependencies, modify the entry's count and del it in the module
if (count > 0) {
entry.remain += count - 1
mod._entry.shift()
i--
}
}
}
// Load module.dependencies and fire onload when all done
Module.prototype.load = function() {
var mod = this
// If the module is being loaded, just wait it onload call
if (mod.status >= STATUS.LOADING) {
return
}
mod.status = STATUS.LOADING
// Emit `load` event for plugins such as combo plugin
var uris = mod.resolve()
emit("load", uris)
for (var i = 0, len = uris.length; i < len; i++) {
mod.deps[mod.dependencies[i]] = Module.get(uris[i])
}
// Pass entry to it's dependencies
mod.pass()
// If module has entries not be passed, call onload
if (mod._entry.length) {
mod.onload()
return
}
// Begin parallel loading
var requestCache = {}
var m
for (i = 0; i < len; i++) {
m = cachedMods[uris[i]]
if (m.status < STATUS.FETCHING) {
m.fetch(requestCache)
}
else if (m.status === STATUS.SAVED) {
m.load()
}
}
// Send all requests at last to avoid cache bug in IE6-9. Issues#808
for (var requestUri in requestCache) {
if (requestCache.hasOwnProperty(requestUri)) {
requestCache[requestUri]()
}
}
}
// Call this method when module is loaded
Module.prototype.onload = function() {
var mod = this
mod.status = STATUS.LOADED
// When sometimes cached in IE, exec will occur before onload, make sure len is an number
for (var i = 0, len = (mod._entry || []).length; i < len; i++) {
var entry = mod._entry[i]
if (--entry.remain === 0) {
entry.callback()
}
}
delete mod._entry
}
// Call this method when module is 404
Module.prototype.error = function() {
var mod = this
mod.onload()
mod.status = STATUS.ERROR
}
// Execute a module
Module.prototype.exec = function () {
var mod = this
// When module is executed, DO NOT execute it again. When module
// is being executed, just return `module.exports` too, for avoiding
// circularly calling
if (mod.status >= STATUS.EXECUTING) {
return mod.exports
}
mod.status = STATUS.EXECUTING
if (mod._entry && !mod._entry.length) {
delete mod._entry
}
//non-cmd module has no property factory and exports
if (!mod.hasOwnProperty('factory')) {
mod.non = true
return
}
// Create require
var uri = mod.uri
function require(id) {
var m = mod.deps[id] || Module.get(require.resolve(id))
if (m.status == STATUS.ERROR) {
throw new Error('module was broken: ' + m.uri);
}
return m.exec()
}
require.resolve = function(id) {
return Module.resolve(id, uri)
}
require.async = function(ids, callback) {
Module.use(ids, callback, uri + "_async_" + cid())
return require
}
// Exec factory
var factory = mod.factory
var exports = isFunction(factory) ?
factory(require, mod.exports = {}, mod) :
factory
if (exports === undefined) {
exports = mod.exports
}
// Reduce memory leak
delete mod.factory
mod.exports = exports
mod.status = STATUS.EXECUTED
// Emit `exec` event
emit("exec", mod)
return mod.exports
}
// Fetch a module
Module.prototype.fetch = function(requestCache) {
var mod = this
var uri = mod.uri
mod.status = STATUS.FETCHING
// Emit `fetch` event for plugins such as combo plugin
var emitData = { uri: uri }
emit("fetch", emitData)
var requestUri = emitData.requestUri || uri
// Empty uri or a non-CMD module
if (!requestUri || fetchedList.hasOwnProperty(requestUri)) {
mod.load()
return
}
if (fetchingList.hasOwnProperty(requestUri)) {
callbackList[requestUri].push(mod)
return
}
fetchingList[requestUri] = true
callbackList[requestUri] = [mod]
// Emit `request` event for plugins such as text plugin
emit("request", emitData = {
uri: uri,
requestUri: requestUri,
onRequest: onRequest,
charset: isFunction(data.charset) ? data.charset(requestUri) || 'utf-8' : data.charset
})
if (!emitData.requested) {
requestCache ?
requestCache[emitData.requestUri] = sendRequest :
sendRequest()
}
function sendRequest() {
seajs.request(emitData.requestUri, emitData.onRequest, emitData.charset)
}
function onRequest(error) {
delete fetchingList[requestUri]
fetchedList[requestUri] = true
// Save meta data of anonymous module
if (anonymousMeta) {
Module.save(uri, anonymousMeta)
anonymousMeta = null
}
// Call callbacks
var m, mods = callbackList[requestUri]
delete callbackList[requestUri]
while ((m = mods.shift())) {
// When 404 occurs, the params error will be true
if(error === true) {
m.error()
}
else {
m.load()
}
}
}
}
// Resolve id to uri
Module.resolve = function(id, refUri) {
// Emit `resolve` event for plugins such as text plugin
var emitData = { id: id, refUri: refUri }
emit("resolve", emitData)
return emitData.uri || seajs.resolve(emitData.id, refUri)
}
// Define a module
Module.define = function (id, deps, factory) {
var argsLen = arguments.length
// define(factory)
if (argsLen === 1) {
factory = id
id = undefined
}
else if (argsLen === 2) {
factory = deps
// define(deps, factory)
if (isArray(id)) {
deps = id
id = undefined
}
// define(id, factory)
else {
deps = undefined
}
}
// Parse dependencies according to the module factory code
if (!isArray(deps) && isFunction(factory)) {
deps = typeof parseDependencies === "undefined" ? [] : parseDependencies(factory.toString())
}
var meta = {
id: id,
uri: Module.resolve(id),
deps: deps,
factory: factory
}
// Try to derive uri in IE6-9 for anonymous modules
if (!isWebWorker && !meta.uri && doc.attachEvent && typeof getCurrentScript !== "undefined") {
var script = getCurrentScript()
if (script) {
meta.uri = script.src
}
// NOTE: If the id-deriving methods above is failed, then falls back
// to use onload event to get the uri
}
// Emit `define` event, used in nocache plugin, seajs node version etc
emit("define", meta)
meta.uri ? Module.save(meta.uri, meta) :
// Save information for "saving" work in the script onload event
anonymousMeta = meta
}
// Save meta data to cachedMods
Module.save = function(uri, meta) {
var mod = Module.get(uri)
// Do NOT override already saved modules
if (mod.status < STATUS.SAVED) {
mod.id = meta.id || uri
mod.dependencies = meta.deps || []
mod.factory = meta.factory
mod.status = STATUS.SAVED
emit("save", mod)
}
}
// Get an existed module or create a new one
Module.get = function(uri, deps) {
return cachedMods[uri] || (cachedMods[uri] = new Module(uri, deps))
}
// Use function is equal to load a anonymous module
Module.use = function (ids, callback, uri) {
var mod = Module.get(uri, isArray(ids) ? ids : [ids])
mod._entry.push(mod)
mod.history = {}
mod.remain = 1
mod.callback = function() {
var exports = []
var uris = mod.resolve()
for (var i = 0, len = uris.length; i < len; i++) {
exports[i] = cachedMods[uris[i]].exec()
}
if (callback) {
callback.apply(global, exports)
}
delete mod.callback
delete mod.history
delete mod.remain
delete mod._entry
}
mod.load()
}
// Public API
seajs.use = function(ids, callback) {
Module.use(ids, callback, data.cwd + "_use_" + cid())
return seajs
}
Module.define.cmd = {}
global.define = Module.define
// For Developers
seajs.Module = Module
data.fetchedList = fetchedList
data.cid = cid
seajs.require = function(id) {
var mod = Module.get(Module.resolve(id))
if (mod.status < STATUS.EXECUTING) {
mod.onload()
mod.exec()
}
return mod.exports
}
/**
* config.js - The configuration for the loader
*/
// The root path to use for id2uri parsing
data.base = loaderDir
// The loader directory
data.dir = loaderDir
// The loader's full path
data.loader = loaderPath
// The current working directory
data.cwd = cwd
// The charset for requesting files
data.charset = "utf-8"
// data.alias - An object containing shorthands of module id
// data.paths - An object containing path shorthands in module id
// data.vars - The {xxx} variables in module id
// data.map - An array containing rules to map module uri
// data.debug - Debug mode. The default value is false
seajs.config = function(configData) {
for (var key in configData) {
var curr = configData[key]
var prev = data[key]
// Merge object config such as alias, vars
if (prev && isObject(prev)) {
for (var k in curr) {
prev[k] = curr[k]
}
}
else {
// Concat array config such as map
if (isArray(prev)) {
curr = prev.concat(curr)
}
// Make sure that `data.base` is an absolute path
else if (key === "base") {
// Make sure end with "/"
if (curr.slice(-1) !== "/") {
curr += "/"
}
curr = addBase(curr)
}
// Set config
data[key] = curr
}
}
emit("config", configData)
return seajs
}
})(this);
seajs.config({
base: 'http://localhost:8000',
charset: 'utf-8'
});
\ No newline at end of file
... ...
@charset "utf-8";
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//------------------------------------------------
/*
* @description:用于生成retina下的图片精灵
*/
@mixin retina-sprite ($map,$sprite,$horizontal: false,$vertical: false) {
$width: image-width(sprite-file($map, $sprite));
$height: image-height(sprite-file($map, $sprite));
$offsetY: ceil(nth(sprite-position($map,$sprite),2)/2);
background: sprite-url($map) 0 $offsetY no-repeat;
$zoomX: ceil(image_width(sprite-path($map))/2);
$zoomY: auto;
@include background-size($zoomX $zoomY);
display: block;
width: ceil($width/2)+1;
height: ceil($height/2)+1;
$ifabsolute: true;
@if $horizontal {
@if $ifabsolute {
position: absolute;
$ifabsolute: false;
}
@if $horizontal == true {
left: 50%;
margin-left: -(round($width/4));
}
@else{
left: $horizontal;
}
}
@if $vertical {
@if $ifabsolute {
position: absolute;
$ifabsolute: false;
}
@if $vertical == true {
top: 50%;
margin-top: -(round($height/4));
}
@else{
top: $vertical;
}
}
}
/*
* @description:用于生成retina下的背景图片
*/
@mixin retain-background ($url) {
background: image-url($url) center center no-repeat;
$width: image-width($url);
@include background-size($width/2 auto);
}
@charset "utf-8";
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//------------------------------------------------
/*
* @description:用于生成retina下的图片精灵
*/
@mixin retina-sprite ($map,$sprite,$horizontal: false,$vertical: false) {
$width: image-width(sprite-file($map, $sprite));
$height: image-height(sprite-file($map, $sprite));
$offsetY: ceil(nth(sprite-position($map,$sprite),2)/2);
background: sprite-url($map) 0 $offsetY no-repeat;
$zoomX: ceil(image_width(sprite-path($map))/2);
$zoomY: auto;
@include background-size($zoomX $zoomY);
display: block;
width: ceil($width/2)+1;
height: ceil($height/2)+1;
$ifabsolute: true;
@if $horizontal {
@if $ifabsolute {
position: absolute;
$ifabsolute: false;
}
@if $horizontal == true {
left: 50%;
margin-left: -(round($width/4));
}
@else{
left: $horizontal;
}
}
@if $vertical {
@if $ifabsolute {
position: absolute;
$ifabsolute: false;
}
@if $vertical == true {
top: 50%;
margin-top: -(round($height/4));
}
@else{
top: $vertical;
}
}
}
/*
* @description:用于生成retina下的背景图片
*/
@mixin retain-background ($url) {
background: image-url($url) center center no-repeat;
$width: image-width($url);
@include background-size($width/2 auto);
}
... ...
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
$nav: sprite-map("nav/*.png",$spacing: 5px);
$line: sprite-map("line/*.png",$spacing: 5px);
$icons: sprite-map("icons/*.png",$spacing: 5px);
//$side-bar: sprite-map("side-bar/*.png",$spacing: 5px);
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
$nav: sprite-map("nav/*.png",$spacing: 5px);
$line: sprite-map("line/*.png",$spacing: 5px);
$icons: sprite-map("icons/*.png",$spacing: 5px);
//$side-bar: sprite-map("side-bar/*.png",$spacing: 5px);
... ...
/*
* @description: variable
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//browser-support
$supported-browsers: (safari);
//background-color
$color-footer: #f5f5f5;
$color-background: #fff;
//font
$font-color: #000;
$font-size: 62.5%;
$font-default: "STHeiti","Helvetica","Arial";
//layout
$layout-width: 320px;
//footer
$footer-width: $layout-width;
$footer-height: 230px;
/*
* @description: variable
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//browser-support
$supported-browsers: (safari);
//background-color
$color-footer: #f5f5f5;
$color-background: #fff;
//font
$font-color: #000;
$font-size: 62.5%;
$font-default: "STHeiti","Helvetica","Arial";
//layout
$layout-width: 320px;
//footer
$footer-width: $layout-width;
$footer-height: 230px;
... ...
@charset "utf-8";
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//reset
@import "partial/public";
//组件
@import "partial/components/header";
@import "partial/components/header-nav";
@import "partial/components/page_switch";
@import "partial/components/download-app";
@import "partial/components/header-download-app";
@import "partial/components/footer";
@import "partial/components/comment";
@import "partial/components/tag";
@import "partial/components/search";
@import "partial/components/follow-us";
@import "partial/components/banner";
//页面
@import "partial/index";
@import "partial/magazine";
@import "partial/video";
@import "partial/edit";
@import "partial/fashion";
@import "partial/about";
@import "partial/detail";
//插件
@charset "utf-8";
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//reset
@import "partial/public";
//组件
@import "partial/components/header";
@import "partial/components/header-nav";
@import "partial/components/page_switch";
@import "partial/components/download-app";
@import "partial/components/header-download-app";
@import "partial/components/footer";
@import "partial/components/comment";
@import "partial/components/tag";
@import "partial/components/search";
@import "partial/components/follow-us";
@import "partial/components/banner";
//页面
@import "partial/index";
@import "partial/magazine";
@import "partial/video";
@import "partial/edit";
@import "partial/fashion";
@import "partial/about";
@import "partial/detail";
//插件
@import "partial/plugin/swiper";
\ No newline at end of file
... ...
/**
* Created by chenglong.wang@yoho.cn on 2015/1/30.
*/
.error_404{
width: 100%;
min-height: 400px;
position: relative;
font-size: 1.4rem;
color: #000;
text-align: center;
>p,>a{
position: absolute;
left: 0;
width: 100%;
height: 20px;
line-height: 20px;
display: block;
color: #000;
@include unstyled-link();
}
.error_img{
@include retina-sprite($line,404,true,100px);
@include hide-text();
+ p{
top: 200px;
}
}
.go_back{
top: 235px;
&:after{
content: '';
@include retina-sprite($icons,go_back,108px,true);
}
}
.go_home{
top: 270px;
&:after{
content: '';
@include retina-sprite($icons,go_home,115px,true);
}
}
/**
* Created by chenglong.wang@yoho.cn on 2015/1/30.
*/
.error_404{
width: 100%;
min-height: 400px;
position: relative;
font-size: 1.4rem;
color: #000;
text-align: center;
>p,>a{
position: absolute;
left: 0;
width: 100%;
height: 20px;
line-height: 20px;
display: block;
color: #000;
@include unstyled-link();
}
.error_img{
@include retina-sprite($line,404,true,100px);
@include hide-text();
+ p{
top: 200px;
}
}
.go_back{
top: 235px;
&:after{
content: '';
@include retina-sprite($icons,go_back,108px,true);
}
}
.go_home{
top: 270px;
&:after{
content: '';
@include retina-sprite($icons,go_home,115px,true);
}
}
}
\ No newline at end of file
... ...
@charset "utf-8";
/*
* @description: about css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/21
*/
.about-left {
text-align: left;
}
.about-h2 {
font-size: 1.8rem;
font-weight: bold;
margin-bottom: 14px;
text-align: center;
}
.about {
margin: 20px 15px 0 15px;
text-align: center;
.about-app {
ul {
margin-top: 35px;
}
}
.about-introduce, .about-other {
> p {
font-size: 1.4rem;
line-height: 28px;
}
}
.about-other {
> h3 {
font-weight: bold;
margin-bottom: 10px;
font-size: 1.4rem;
}
}
.about-contact {
text-align: left;
> h3 {
font-weight: bold;
margin-bottom: 10px;
font-size: 1.4rem;
}
> p {
font-size: 1.4rem;
margin: 5px 0;
line-height: 20px;
}
}
}
.about-app {
margin-top: 55px;
text-align: center;
> h2 {
font-size: 1.8rem;
font-weight: bold;
}
li {
position: relative;
margin-bottom: 38px;
overflow: hidden;
&:nth-of-type(3) {
margin-bottom: 0;
}
@each $about-app in about-show, about-yoho, about-boy {
.#{$about-app} {
@include retina-sprite($icons, #{$about-app}, true, 0);
}
}
h3 {
font-size: 1.8rem;
font-weight: bold;
margin-top: 80px;
}
p {
font-size: 1.4rem;
margin-top: 11px;
}
a {
display: block;
width: 100%;
height: 100%;
color: #000;
}
}
}
@charset "utf-8";
/*
* @description: about css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/21
*/
.about-left {
text-align: left;
}
.about-h2 {
font-size: 1.8rem;
font-weight: bold;
margin-bottom: 14px;
text-align: center;
}
.about {
margin: 20px 15px 0 15px;
text-align: center;
.about-app {
ul {
margin-top: 35px;
}
}
.about-introduce, .about-other {
> p {
font-size: 1.4rem;
line-height: 28px;
}
}
.about-other {
> h3 {
font-weight: bold;
margin-bottom: 10px;
font-size: 1.4rem;
}
}
.about-contact {
text-align: left;
> h3 {
font-weight: bold;
margin-bottom: 10px;
font-size: 1.4rem;
}
> p {
font-size: 1.4rem;
margin: 5px 0;
line-height: 20px;
}
}
}
.about-app {
margin-top: 55px;
text-align: center;
> h2 {
font-size: 1.8rem;
font-weight: bold;
}
li {
position: relative;
margin-bottom: 38px;
overflow: hidden;
&:nth-of-type(3) {
margin-bottom: 0;
}
@each $about-app in about-show, about-yoho, about-boy {
.#{$about-app} {
@include retina-sprite($icons, #{$about-app}, true, 0);
}
}
h3 {
font-size: 1.8rem;
font-weight: bold;
margin-top: 80px;
}
p {
font-size: 1.4rem;
margin-top: 11px;
}
a {
display: block;
width: 100%;
height: 100%;
color: #000;
}
}
}
... ...
@charset "utf-8";
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/22
*/
.detail {
margin: 0 15px 0 15px;
> h2 {
font-size: 2rem;
font-weight: bold;
margin-top: 15px;
line-height: 24px;
}
> h3 {
font-size: 2rem;
font-weight: bold;
margin-top: 2px;
line-height: 24px;
}
> p {
font-size: 1.4rem;
margin-top: 15px;
color: #999;
a {
color: #999;
display: inline-block;
}
.detail_author {
display: block;
margin-bottom: 5px;
text-decoration: underline;
font-weight: normal;
}
}
strong, b {
font-weight: bold;
}
.detail-banner.swiper-container {
width: 100%;
height: 185px;
position: relative;
overflow: hidden;
background: #fff;
.swiper-slide {
width: 290px;
height: 185px;
display: block;
overflow: hidden;
float: left;
background: #fff;
text-align: center;
}
img {
height: 185px;
width: auto;
margin: 0 auto;
display: inline-block;
}
.detail-switch {
//@include retina-sprite($icons,page-opacity);
font-size: 1.4rem;
color: #fff;
font-weight: bold;
text-align: center;
line-height: 22px;
position: absolute;
right: 5px;
bottom: 10px;
}
}
.detail-text {
color: #000;
line-height: 20px;
font-size: 1.4rem;
margin-top: 10px;
word-wrap: break-word;
a {
color: #000;
}
img {
width: 100%;
overflow: hidden;
display: block;
}
.param {
width: 290px;
height: auto;
}
ol {
padding-left: 25px;
list-style: decimal;
}
}
//media
.media {
margin-top: 15px;
video, img {
width: 100%;
}
}
//视频分页
.detail-pagination {
text-align: center;
.channel-index-pager {
height: auto;
overflow: hidden;
margin: 0 auto;
display: inline-block;
}
.pager-item {
//@include retina-sprite($icons,detail-page);
color: #000;
float: left;
background: none;
line-height: 27px;
margin-bottom: 20px;
font-size: 1.2rem;
}
.pager-item-choosen {
//@include retina-sprite($icons,detail-page);
color: #fff;
}
}
}
//相关推荐
.recomment {
margin: 30px 15px 0 15px;
> h2 {
font-size: 2rem;
color: #333;
font-weight: bold;
}
> ul {
margin-top: 12px;
li {
height: auto;
overflow: hidden;
border-bottom: 1px solid #ccc;
padding-bottom: 15px;
margin-bottom: 15px;
a {
color: #000;
display: block;
height: auto;
overflow: hidden;
}
}
.content-pic {
width: 96px;
height: 61px;
float: left;
position: relative;
img {
width: 100%;
height: 100%;
display: block;
overflow: hidden;
}
.play-icon {
//@include retina-sprite($icons,play-icon,true,true);
}
}
.content-text {
overflow: hidden; //开启BFC
padding-left: 14px;
height: 80px;
font-size: 1.4rem;
line-height: 1.8;
font-weight: normal;
color: #000;
}
}
}
//分页
.detail-page {
margin: 44px 15px 0 15px;
height: 16px;
line-height: 16px;
position: relative;
> span {
height: 20px;
line-height: 20px;
display: block;
position: relative;
}
.detail-prev {
&:before {
content: '';
@include retina-sprite($icons, comment-prev, false, true);
left: 0;
}
float: left;
a {
margin-left: 20px;
}
}
.detail-next {
&:after {
content: '';
@include retina-sprite($icons, comment-next, false, true);
right: 0;
}
float: right;
a {
margin-right: 20px;
}
}
a {
color: #000;
font-size: 1.2rem;
}
@charset "utf-8";
/*
* @description: header css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/22
*/
.detail {
margin: 0 15px 0 15px;
> h2 {
font-size: 2rem;
font-weight: bold;
margin-top: 15px;
line-height: 24px;
}
> h3 {
font-size: 2rem;
font-weight: bold;
margin-top: 2px;
line-height: 24px;
}
> p {
font-size: 1.4rem;
margin-top: 15px;
color: #999;
a {
color: #999;
display: inline-block;
}
.detail_author {
display: block;
margin-bottom: 5px;
text-decoration: underline;
font-weight: normal;
}
}
strong, b {
font-weight: bold;
}
.detail-banner.swiper-container {
width: 100%;
height: 185px;
position: relative;
overflow: hidden;
background: #fff;
.swiper-slide {
width: 290px;
height: 185px;
display: block;
overflow: hidden;
float: left;
background: #fff;
text-align: center;
}
img {
height: 185px;
width: auto;
margin: 0 auto;
display: inline-block;
}
.detail-switch {
//@include retina-sprite($icons,page-opacity);
font-size: 1.4rem;
color: #fff;
font-weight: bold;
text-align: center;
line-height: 22px;
position: absolute;
right: 5px;
bottom: 10px;
}
}
.detail-text {
color: #000;
line-height: 20px;
font-size: 1.4rem;
margin-top: 10px;
word-wrap: break-word;
a {
color: #000;
}
img {
width: 100%;
overflow: hidden;
display: block;
}
.param {
width: 290px;
height: auto;
}
ol {
padding-left: 25px;
list-style: decimal;
}
}
//media
.media {
margin-top: 15px;
video, img {
width: 100%;
}
}
//视频分页
.detail-pagination {
text-align: center;
.channel-index-pager {
height: auto;
overflow: hidden;
margin: 0 auto;
display: inline-block;
}
.pager-item {
//@include retina-sprite($icons,detail-page);
color: #000;
float: left;
background: none;
line-height: 27px;
margin-bottom: 20px;
font-size: 1.2rem;
}
.pager-item-choosen {
//@include retina-sprite($icons,detail-page);
color: #fff;
}
}
}
//相关推荐
.recomment {
margin: 30px 15px 0 15px;
> h2 {
font-size: 2rem;
color: #333;
font-weight: bold;
}
> ul {
margin-top: 12px;
li {
height: auto;
overflow: hidden;
border-bottom: 1px solid #ccc;
padding-bottom: 15px;
margin-bottom: 15px;
a {
color: #000;
display: block;
height: auto;
overflow: hidden;
}
}
.content-pic {
width: 96px;
height: 61px;
float: left;
position: relative;
img {
width: 100%;
height: 100%;
display: block;
overflow: hidden;
}
.play-icon {
//@include retina-sprite($icons,play-icon,true,true);
}
}
.content-text {
overflow: hidden; //开启BFC
padding-left: 14px;
height: 80px;
font-size: 1.4rem;
line-height: 1.8;
font-weight: normal;
color: #000;
}
}
}
//分页
.detail-page {
margin: 44px 15px 0 15px;
height: 16px;
line-height: 16px;
position: relative;
> span {
height: 20px;
line-height: 20px;
display: block;
position: relative;
}
.detail-prev {
&:before {
content: '';
@include retina-sprite($icons, comment-prev, false, true);
left: 0;
}
float: left;
a {
margin-left: 20px;
}
}
.detail-next {
&:after {
content: '';
@include retina-sprite($icons, comment-next, false, true);
right: 0;
}
float: right;
a {
margin-right: 20px;
}
}
a {
color: #000;
font-size: 1.2rem;
}
}
\ No newline at end of file
... ...
/*
* @description: edit css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/20
*/
.has-comment {
margin: 10px 15px 20px 15px;
background: #f5f5f5;
min-height: 80px;
padding-bottom: 10px;
.has-user {
margin-left: 15px;
margin-top: 12px;
width: 56px;
height: 56px;
float: left;
display: block;
@include border-radius(28px);
overflow: hidden;
img {
width: 100%;
height: 100%;
display: block;
overflow: hidden;
}
}
.has-comment-info {
overflow: hidden;
@include box-sizing();
padding: 0 12px;
> h2 {
font-size: 1.8rem;
font-weight: bold;
margin-top: 12px;
}
.edit-intrduce {
color: #666;
line-height: 18px;
position: relative;
font-size: 1.4rem;
margin-top: 8px;
.line-btn {
width: 30px;
height: 30px;
position: absolute;
right: 0;
bottom: 2px;
&:after {
content: '';
width: 12px;
height: 10px;
background: inline_image('base64/more.png') center center no-repeat;
@include background-size(100%);
display: inline-block;
position: absolute;
right: 0;
bottom: 0;
}
}
.line-btn.edit-active {
&:after {
background: inline_image('base64/more-active.png') center center no-repeat;
}
}
}
> span {
margin-top: 5px;
display: block;
position: relative;
height: 30px;
line-height: 25px;
text-indent: 40px;
font-size: 1.4rem;
&:after {
content: '';
@include retina-sprite($icons, edit-comment, 0, true);
}
}
}
}
#fashion {
.img-link {
&:after {
@include retina-sprite($icons, channel-fashion);
}
}
.content-item {
> h2, h3 {
color: #9b90ff;
}
}
/*
* @description: edit css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/20
*/
.has-comment {
margin: 10px 15px 20px 15px;
background: #f5f5f5;
min-height: 80px;
padding-bottom: 10px;
.has-user {
margin-left: 15px;
margin-top: 12px;
width: 56px;
height: 56px;
float: left;
display: block;
@include border-radius(28px);
overflow: hidden;
img {
width: 100%;
height: 100%;
display: block;
overflow: hidden;
}
}
.has-comment-info {
overflow: hidden;
@include box-sizing();
padding: 0 12px;
> h2 {
font-size: 1.8rem;
font-weight: bold;
margin-top: 12px;
}
.edit-intrduce {
color: #666;
line-height: 18px;
position: relative;
font-size: 1.4rem;
margin-top: 8px;
.line-btn {
width: 30px;
height: 30px;
position: absolute;
right: 0;
bottom: 2px;
&:after {
content: '';
width: 12px;
height: 10px;
background: inline_image('base64/more.png') center center no-repeat;
@include background-size(100%);
display: inline-block;
position: absolute;
right: 0;
bottom: 0;
}
}
.line-btn.edit-active {
&:after {
background: inline_image('base64/more-active.png') center center no-repeat;
}
}
}
> span {
margin-top: 5px;
display: block;
position: relative;
height: 30px;
line-height: 25px;
text-indent: 40px;
font-size: 1.4rem;
&:after {
content: '';
@include retina-sprite($icons, edit-comment, 0, true);
}
}
}
}
#fashion {
.img-link {
&:after {
@include retina-sprite($icons, channel-fashion);
}
}
.content-item {
> h2, h3 {
color: #9b90ff;
}
}
}
\ No newline at end of file
... ...
/*
* @description: video css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
/*
* @description: video css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
\ No newline at end of file
... ...
@charset "utf-8";
/*
* @description: index css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//content
.home-content {
margin: 20px 15px 0 15px;
@each $channel in fashion, lifestyle, video {
.channel-#{$channel} {
.img-link {
position: relative;
display: block;
width: 290px;
height: 185px;
&:after {
content: '';
@include retina-sprite($icons, channel-#{$channel});
position: absolute;
right: -5px;
bottom: -5px;
}
img {
width: 100%;
height: auto;
}
}
}
}
#pop {
.img-link {
width: 290px;
height: 390px;
background: #ffe558;
overflow: hidden;
padding: 30px 10px 10px 10px;
@include box-sizing();
&:before {
content: '';
@include retina-sprite($icons, pop, true, false);
top: 4px;
}
&:after {
display: none;
}
img {
width: 270px;
height: 350px;
margin: 0 auto;
display: block;
overflow: hidden;
}
}
}
.content-item {
width: 100%;
height: auto;
margin-bottom: 35px;
padding-bottom: 35px;
border-bottom: 1px solid #272727;
> h2, > h3, > time {
text-align: center;
display: block;
width: 100%;
}
> h2, > time {
margin-top: 15px;
}
> h2, > h3 {
line-height: 24px;
font-size: 2rem;
font-weight: bold;
color: #000;
}
> h3 {
margin-top: 2px;
}
> time {
font-size: 1.4rem;
font-weight: normal;
color: #999;
text-transform: capitalize;
a {
color: #999;
}
}
> p {
line-height: 23px;
margin-top: 12px;
text-align: center;
display: block;
width: 100%;
font-size: 1.4rem;
a {
color: #000;
display: block;
}
}
}
}
@each $channelColor, $channelTitle in (fashion, #9b90ff),
(beauty, #ffcaca),
(sport, #84e3ca),
(lifestyle, #ffca72),
(magazine, #7ecaff),
(video, #c9caca) {
##{$channelColor} {
//各频道角标颜色
.img-link {
&:after {
@include retina-sprite($icons, channel-#{$channelColor});
}
}
//各频道主副标题颜色
.content-item {
> h2, h3 {
color: $channelTitle;
}
}
}
}
@charset "utf-8";
/*
* @description: index css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
//content
.home-content {
margin: 20px 15px 0 15px;
@each $channel in fashion, lifestyle, video {
.channel-#{$channel} {
.img-link {
position: relative;
display: block;
width: 290px;
height: 185px;
&:after {
content: '';
@include retina-sprite($icons, channel-#{$channel});
position: absolute;
right: -5px;
bottom: -5px;
}
img {
width: 100%;
height: auto;
}
}
}
}
#pop {
.img-link {
width: 290px;
height: 390px;
background: #ffe558;
overflow: hidden;
padding: 30px 10px 10px 10px;
@include box-sizing();
&:before {
content: '';
@include retina-sprite($icons, pop, true, false);
top: 4px;
}
&:after {
display: none;
}
img {
width: 270px;
height: 350px;
margin: 0 auto;
display: block;
overflow: hidden;
}
}
}
.content-item {
width: 100%;
height: auto;
margin-bottom: 35px;
padding-bottom: 35px;
border-bottom: 1px solid #272727;
> h2, > h3, > time {
text-align: center;
display: block;
width: 100%;
}
> h2, > time {
margin-top: 15px;
}
> h2, > h3 {
line-height: 24px;
font-size: 2rem;
font-weight: bold;
color: #000;
}
> h3 {
margin-top: 2px;
}
> time {
font-size: 1.4rem;
font-weight: normal;
color: #999;
text-transform: capitalize;
a {
color: #999;
}
}
> p {
line-height: 23px;
margin-top: 12px;
text-align: center;
display: block;
width: 100%;
font-size: 1.4rem;
a {
color: #000;
display: block;
}
}
}
}
@each $channelColor, $channelTitle in (fashion, #9b90ff),
(beauty, #ffcaca),
(sport, #84e3ca),
(lifestyle, #ffca72),
(magazine, #7ecaff),
(video, #c9caca) {
##{$channelColor} {
//各频道角标颜色
.img-link {
&:after {
@include retina-sprite($icons, channel-#{$channelColor});
}
}
//各频道主副标题颜色
.content-item {
> h2, h3 {
color: $channelTitle;
}
}
}
}
... ...
@charset "utf-8";
/*
* @description: index css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/17
*/
//banner
.magazine-banner {
width: 220px;
height: auto;
margin: 11px auto 0 auto;
position: relative;
.swiper-container, .swiper-slide, img {
width: 220px;
height: 275px;
display: block;
overflow: hidden;
}
.swiper-slide {
float: left;
}
.pagination-wrap {
position: relative;
margin-top: 8px;
text-align: center;
}
.pagination {
height: auto;
overflow: hidden;
display: inline-block;
margin: 0 auto;
}
.swiper-pagination-bullet {
@include retina-sprite($icons, magazine-normal);
margin-right: 5px;
float: left;
opacity: 1;
&:nth-last-of-type(1) {
margin-right: 0;
}
&.swiper-pagination-bullet-active {
@include retina-sprite($icons, magazine-active);
}
}
}
.magazine-more {
width: 100%;
height: 80px;
position: relative;
overflow: hidden;
time, > span, a.buy {
text-align: center;
display: block;
}
time {
margin-top: 8px;
color: #333;
font-size: 1.2rem;
}
> span {
margin-top: 5px;
color: #666;
font-size: 1.2rem;
}
a.buy {
@include retina-sprite($icons, buy, true, false);
bottom: 0;
font-size: 1.4rem;
font-weight: bold;
line-height: 34px;
color: #fff;
@include hover-link();
}
}
//magazine轮播图公用部分
.magazine-slide-style {
height: 180px;
width: 100%;
overflow: hidden;
li.swiper-slide {
width: 131px;
height: 180px;
float: left;
&:nth-last-of-type(1) {
width: 121px;
}
a {
display: block;
height: auto;
overflow: hidden;
position: relative;
&.magazine-special {
&:after {
content: '';
//@include retina-sprite($icons,special-new,0,0);
}
}
}
img {
width: 121px;
height: 160px;
display: block;
overflow: hidden;
}
time {
display: block;
margin-top: 8px;
text-align: center;
font-weight: bold;
width: 121px;
font-size: 1.2rem;
}
}
}
//buy按钮下方的滚动图片
#buy-slide {
margin: 38px 15px 0 15px;
width: auto;
}
//e-zine中的滚动图片
.e-zine {
margin: 55px 15px 0 15px;
overflow: hidden;
position: relative;
> h2 {
@include retina-sprite($icons, e-zine, true, 0);
@include hide-text();
}
#zine-slide {
margin-top: 34px;
}
}
//girl-app
.girl-app {
margin: 30px 15px 0 15px;
height: auto;
overflow: hidden;
position: relative;
.app-background {
float: left;
width: 133px;
height: 96px;
display: block;
@include retain-background("app.jpg");
}
&:after {
content: '';
display: block;
width: 5px;
height: 80px;
background: inline_image("base64/line.png") center center no-repeat;
@include background-size(100%);
position: absolute;
left: 135px;
top: 50%;
margin-top: -40px;
}
.app-info {
width: 150px;
float: right;
h2 {
font-size: 1.8rem;
margin: 5px 0 0 23px;
}
p {
color: #666;
line-height: 15px;
margin: 2px 0 0 23px;
font-size: 1.2rem;
}
.app-download {
@include retina-sprite($icons, download);
font-size: 1.4rem;
font-weight: bold;
line-height: 30px;
color: #fff;
@include hover-link();
text-align: center;
margin: 9px 0 0 23px;
}
}
}
@charset "utf-8";
/*
* @description: index css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/17
*/
//banner
.magazine-banner {
width: 220px;
height: auto;
margin: 11px auto 0 auto;
position: relative;
.swiper-container, .swiper-slide, img {
width: 220px;
height: 275px;
display: block;
overflow: hidden;
}
.swiper-slide {
float: left;
}
.pagination-wrap {
position: relative;
margin-top: 8px;
text-align: center;
}
.pagination {
height: auto;
overflow: hidden;
display: inline-block;
margin: 0 auto;
}
.swiper-pagination-bullet {
@include retina-sprite($icons, magazine-normal);
margin-right: 5px;
float: left;
opacity: 1;
&:nth-last-of-type(1) {
margin-right: 0;
}
&.swiper-pagination-bullet-active {
@include retina-sprite($icons, magazine-active);
}
}
}
.magazine-more {
width: 100%;
height: 80px;
position: relative;
overflow: hidden;
time, > span, a.buy {
text-align: center;
display: block;
}
time {
margin-top: 8px;
color: #333;
font-size: 1.2rem;
}
> span {
margin-top: 5px;
color: #666;
font-size: 1.2rem;
}
a.buy {
@include retina-sprite($icons, buy, true, false);
bottom: 0;
font-size: 1.4rem;
font-weight: bold;
line-height: 34px;
color: #fff;
@include hover-link();
}
}
//magazine轮播图公用部分
.magazine-slide-style {
height: 180px;
width: 100%;
overflow: hidden;
li.swiper-slide {
width: 131px;
height: 180px;
float: left;
&:nth-last-of-type(1) {
width: 121px;
}
a {
display: block;
height: auto;
overflow: hidden;
position: relative;
&.magazine-special {
&:after {
content: '';
//@include retina-sprite($icons,special-new,0,0);
}
}
}
img {
width: 121px;
height: 160px;
display: block;
overflow: hidden;
}
time {
display: block;
margin-top: 8px;
text-align: center;
font-weight: bold;
width: 121px;
font-size: 1.2rem;
}
}
}
//buy按钮下方的滚动图片
#buy-slide {
margin: 38px 15px 0 15px;
width: auto;
}
//e-zine中的滚动图片
.e-zine {
margin: 55px 15px 0 15px;
overflow: hidden;
position: relative;
> h2 {
@include retina-sprite($icons, e-zine, true, 0);
@include hide-text();
}
#zine-slide {
margin-top: 34px;
}
}
//girl-app
.girl-app {
margin: 30px 15px 0 15px;
height: auto;
overflow: hidden;
position: relative;
.app-background {
float: left;
width: 133px;
height: 96px;
display: block;
@include retain-background("app.jpg");
}
&:after {
content: '';
display: block;
width: 5px;
height: 80px;
background: inline_image("base64/line.png") center center no-repeat;
@include background-size(100%);
position: absolute;
left: 135px;
top: 50%;
margin-top: -40px;
}
.app-info {
width: 150px;
float: right;
h2 {
font-size: 1.8rem;
margin: 5px 0 0 23px;
}
p {
color: #666;
line-height: 15px;
margin: 2px 0 0 23px;
font-size: 1.2rem;
}
.app-download {
@include retina-sprite($icons, download);
font-size: 1.4rem;
font-weight: bold;
line-height: 30px;
color: #fff;
@include hover-link();
text-align: center;
margin: 9px 0 0 23px;
}
}
}
... ...
/**
* Created by chenglong.wang@yoho.cn on 2014/12/31.
*/
.map{
margin: 25px 15px -32px 15px;
ul{
height: auto;
overflow: hidden;
}
li{
width: 145px;
height: 110px;
position: relative;
margin-bottom: 57px;
float: left;
.map-pic{
display: block;
width: 100%;
height: 100%;
overflow: hidden;
img{
width: 80%;
display: block;
overflow: hidden;
margin: 0 auto;
}
}
/*@each $map in new-york, london, seoul, bangkok, hongkong {
&.#{$map} {
@include retain-background("h5-map_#{$map}.jpg");
}
}*/
a.map-url{
//font-family: $font-hta;
font-size: 2rem;
font-weight: bold;
display: block;
width: 145px;
text-align: center;
position: absolute;
bottom: -24px;
color: #000;
@include unstyled-link();
}
}
}
.map-list{
margin: 12px 15px 0 15px;
//font-family: $font-hta;
>h2{
font-size: 3rem;
font-weight: bold;
text-align: center;
}
>ul{
margin-top: 25px;
li{
height: auto;
margin-bottom: 30px;
>a{
color: #000;
@include unstyled-link();
display: block;
overflow: hidden;
height: auto;
border: 1px solid transparent;
font-size: 1.2rem;
>div{
height: 20px;
line-height: 20px;
position: relative;
text-indent: 15px;
font-size: 1.2rem;
}
.food,.clothes{
color: #999;
font-weight: bold;
}
}
}
h3{
font-size: 1.8rem;
font-weight: bold;
margin-bottom: 8px;
a{
color: #000;
@include unstyled-link();
}
}
@each $list in food, clothes, location {
.#{$list} {
&:after {
content: '';
@include retina-sprite($icons,#{$list},0,true);
}
}
}
.lifestyle{
&:after {
content: '';
@include retina-sprite($icons,lifestyle-icon,0,true);
}
}
}
/**
* Created by chenglong.wang@yoho.cn on 2014/12/31.
*/
.map{
margin: 25px 15px -32px 15px;
ul{
height: auto;
overflow: hidden;
}
li{
width: 145px;
height: 110px;
position: relative;
margin-bottom: 57px;
float: left;
.map-pic{
display: block;
width: 100%;
height: 100%;
overflow: hidden;
img{
width: 80%;
display: block;
overflow: hidden;
margin: 0 auto;
}
}
/*@each $map in new-york, london, seoul, bangkok, hongkong {
&.#{$map} {
@include retain-background("h5-map_#{$map}.jpg");
}
}*/
a.map-url{
//font-family: $font-hta;
font-size: 2rem;
font-weight: bold;
display: block;
width: 145px;
text-align: center;
position: absolute;
bottom: -24px;
color: #000;
@include unstyled-link();
}
}
}
.map-list{
margin: 12px 15px 0 15px;
//font-family: $font-hta;
>h2{
font-size: 3rem;
font-weight: bold;
text-align: center;
}
>ul{
margin-top: 25px;
li{
height: auto;
margin-bottom: 30px;
>a{
color: #000;
@include unstyled-link();
display: block;
overflow: hidden;
height: auto;
border: 1px solid transparent;
font-size: 1.2rem;
>div{
height: 20px;
line-height: 20px;
position: relative;
text-indent: 15px;
font-size: 1.2rem;
}
.food,.clothes{
color: #999;
font-weight: bold;
}
}
}
h3{
font-size: 1.8rem;
font-weight: bold;
margin-bottom: 8px;
a{
color: #000;
@include unstyled-link();
}
}
@each $list in food, clothes, location {
.#{$list} {
&:after {
content: '';
@include retina-sprite($icons,#{$list},0,true);
}
}
}
.lifestyle{
&:after {
content: '';
@include retina-sprite($icons,lifestyle-icon,0,true);
}
}
}
}
\ No newline at end of file
... ...
@charset "utf-8";
/**
* Created by chenglong.wang@yoho.cn on 2015/2/2.
*/
.emailBox{
margin: 30px 15px 0 15px;
text-align: center;
line-height: 1.8;
font-size: 1.4rem;
//顶部logo
.webLogo{
height: 40px;
position: relative;
&:after{
content: '';
@include retina-sprite($icons,home,true,0);
}
}
//标题
h1{
font-size: 2.4rem;
p{
font-size: 1.8rem;
color: #000;
}
}
//确认订阅
h2{
font-size: 2.0rem;
margin-top: 20px;
}
//是否取消订阅
.isCancel{
font-size: 1.4rem;
margin: 35px 0;
color: #656666;
a{
color: #000;
}
}
.isSucess{
font-size: 1.4rem;
color: #656666;
margin-top: 10px;
}
//返回YOHO
.backYohoBoys{
a{
@include unstyled-link();
}
}
//版权
.newPower{
color: #000;
margin-top: 20px;
}
.btnGroup{
width: 100%;
margin-top: 35px;
font-size: 1.8rem;
height: auto;
overflow: hidden;
.EmailBack{
float: left;
}
.CheckEmail{
float: right;
}
a{
color: #000;
@include unstyled-link();
}
}
.cancelEmail{
a{
font-size: 1.4rem;
color: #000;
margin-top: 20px;
}
}
.radioBox{
p{
text-align: left;
margin: 5px 0;
}
textarea{
width: 100%;
max-width: 100%;
min-width: 100%;
height: 80px;
max-height: 80px;
min-height: 80px;
border: 1px solid #ccc;
background: none;
outline: 0;
@include box-sizing();
}
.pt10{
text-align: center;
a{
color: #000;
}
}
}
}
@charset "utf-8";
/**
* Created by chenglong.wang@yoho.cn on 2015/2/2.
*/
.emailBox{
margin: 30px 15px 0 15px;
text-align: center;
line-height: 1.8;
font-size: 1.4rem;
//顶部logo
.webLogo{
height: 40px;
position: relative;
&:after{
content: '';
@include retina-sprite($icons,home,true,0);
}
}
//标题
h1{
font-size: 2.4rem;
p{
font-size: 1.8rem;
color: #000;
}
}
//确认订阅
h2{
font-size: 2.0rem;
margin-top: 20px;
}
//是否取消订阅
.isCancel{
font-size: 1.4rem;
margin: 35px 0;
color: #656666;
a{
color: #000;
}
}
.isSucess{
font-size: 1.4rem;
color: #656666;
margin-top: 10px;
}
//返回YOHO
.backYohoBoys{
a{
@include unstyled-link();
}
}
//版权
.newPower{
color: #000;
margin-top: 20px;
}
.btnGroup{
width: 100%;
margin-top: 35px;
font-size: 1.8rem;
height: auto;
overflow: hidden;
.EmailBack{
float: left;
}
.CheckEmail{
float: right;
}
a{
color: #000;
@include unstyled-link();
}
}
.cancelEmail{
a{
font-size: 1.4rem;
color: #000;
margin-top: 20px;
}
}
.radioBox{
p{
text-align: left;
margin: 5px 0;
}
textarea{
width: 100%;
max-width: 100%;
min-width: 100%;
height: 80px;
max-height: 80px;
min-height: 80px;
border: 1px solid #ccc;
background: none;
outline: 0;
@include box-sizing();
}
.pt10{
text-align: center;
a{
color: #000;
}
}
}
}
... ...
/*
* @description: public css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
@import "compass";
@import "../base/mixins";
@import "../base/sprite";
@import "../base/variable";
@include global-reset();
a {
@include unstyled-link();
}
html, body {
color: $font-color;
font-size: $font-size;
font-family: $font-default;
width: 100%;
max-width: $layout-width;
margin: 0 auto;
position: relative;
height: auto;
}
#mobile-wrap {
width: 100%;
height: auto;
margin: 0 auto;
background: $color-background;
}
/*
* @description: public css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
@import "compass";
@import "../base/mixins";
@import "../base/sprite";
@import "../base/variable";
@include global-reset();
a {
@include unstyled-link();
}
html, body {
color: $font-color;
font-size: $font-size;
font-family: $font-default;
width: 100%;
max-width: $layout-width;
margin: 0 auto;
position: relative;
height: auto;
}
#mobile-wrap {
width: 100%;
height: auto;
margin: 0 auto;
background: $color-background;
}
... ...
/*
* @description: video css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
.sub-tag {
height: 25px;
line-height: 25px;
padding: 0 18px;
position: absolute;
left: -5px;
top: -5px;
z-index: 100;
color: #fff;
font-weight: bold;
font-size: 14px;
background: rgba(#c9caca, .88);
/*
* @description: video css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
.sub-tag {
height: 25px;
line-height: 25px;
padding: 0 18px;
position: absolute;
left: -5px;
top: -5px;
z-index: 100;
color: #fff;
font-weight: bold;
font-size: 14px;
background: rgba(#c9caca, .88);
}
\ No newline at end of file
... ...
/*
* @description: index css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/24
*/
//banner
.banner {
width: 100%;
//height: 220px;
margin-bottom: 15px;
position: relative;
.swiper-container, .swiper-slide, img {
width: 320px;
height: 200px;
display: block;
overflow: hidden;
}
.swiper-slide {
float: left;
a {
display: block;
}
}
.pagination-wrap {
position: relative;
margin-top: 10px;
text-align: center;
}
.pagination {
height: auto;
overflow: hidden;
display: inline-block;
margin: 0 auto;
}
}
@each $channel in home, fashion, beauty, sport, lifestyle, video {
##{$channel} {
.banner {
.swiper-pagination-bullet {
@include retina-sprite($icons, #{$channel}-normal);
margin-right: 5px;
float: left;
opacity: 1;
&:nth-last-of-type(1) {
margin-right: 0;
}
&.swiper-pagination-bullet-active {
@include retina-sprite($icons, #{$channel}-active);
}
}
}
}
}
... ...
@charset "utf-8";
/*
* @description: comment css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/20
*/
//评论
.comment {
margin: 25px 15px 0 15px;
//公用
.userimg {
width: 40px;
height: 40px;
img {
width: 100%;
height: 100%;
display: block;
overflow: hidden;
@include border-radius(20px);
}
}
//态度
.statslist {
margin: 0 5px 30px 5px;
height: auto;
overflow: hidden;
> li {
float: left;
width: 25%;
height: 30px;
position: relative;
&:nth-last-of-type(1) {
&:before {
display: block;
content: '';
border-left: 1px solid #000;
width: 1px;
height: 100%;
position: absolute;
top: 0;
left: 10px;
}
}
@each $i, $isLike in (1: smile, 2: nothing, 3: bad, 4: comment) {
&:nth-of-type(#{$i}) {
> div {
@include retina-sprite($icons,#{$isLike},true,0);
z-index: 100;
}
&.current {
> div {
@include retina-sprite($icons,current_#{$isLike},true,0);
}
}
}
}
span {
display: block;
width: 31px;
height: 31px;
position: relative;
> i {
position: absolute;
left: 30px;
bottom: 3px;
color: #000;
display: none;
font-size: 1.2rem;
}
> img {
position: absolute;
left: 30px;
bottom: 3px;
display: block;
width: 16px;
}
}
#comment-num {
position: absolute;
left: 30px;
bottom: 3px;
width: auto;
height: auto;
font-size: 1.2rem;
> img {
position: absolute;
left: 0;
bottom: 0;
width: 16px;
}
}
}
}
//评论分页
/*.pager-content {
margin-top: 20px;
position: relative;
height: 25px;
a {
color: #000;
//@include hide-text();
}
.switch-prev {
float: left;
@include retina-sprite($icons,comment-prev);
}
.switch-next {
float: right;
@include retina-sprite($icons,comment-next);
}
}*/
//评论列表
ul.comments-list {
width: 100%;
li {
border-bottom: 1px solid #ccc;
padding-bottom: 18px;
margin-bottom: 10px;
.userimg {
position: relative;
float: left;
margin-right: 15px;
}
@each $comment-user in qq, weibo, yoho, fb {
.#{$comment-user} {
@include retina-sprite($icons,#{$comment-user},false,false);
position: absolute;
right: -5px;
bottom: -2px;
}
}
.userinfo {
overflow: hidden;
margin-left: 15px;
position: relative;
> h6 {
font-weight: bold;
font-size: 1.2rem;
}
> p {
font-size: 1.4rem;
line-height: 20px;
margin-top: 10px;
word-wrap: break-word;
width: 200px;
}
.delete-comment {
@include retina-sprite($icons,del,false,true);
right: 10px;
}
}
}
}
//查看更多
.view-more {
text-align: center;
font-size: 1.4rem;
margin-top: 20px;
display: block;
width: 100%;
font-weight: bold;
a {
color: #000;
}
}
//第三方登陆
/*.feedback-login {
margin-top: 10px;
font-size: 1.4rem;
color: #999;
height: 15px;
line-height: 15px;
> a {
margin: 0 5px;
img {
height: 15px;
}
}
}*/
//评论发布
.comment-textarea {
margin-top: 25px;
border: 1px solid #000;
> textarea {
width: 100%;
height: 54px;
max-width: 100%;
max-height: 100%;
border: none;
background: none;
outline: none;
font-size: 1.4rem;
color: #999;
@include box-sizing();
padding: 0 12px;
margin: 10px 0 20px 0;
}
.login-status {
border-top: 1px solid #000;
height: 54px;
position: relative;
.userimg {
position: absolute;
left: 8px;
top: 50%;
margin-top: -20px;
}
.userinfo, .anonymous {
position: absolute;
top: 21px;
left: 65px;
font-size: 1.4rem;
width: 150px;
color: #424242;
font-weight: bold;
a {
color: #000;
border-left: 1px solid #000;
padding: 0 10px;
margin-left: 10px;
}
}
.publish {
@include retina-sprite($icons,buy,false,true);
right: 0;
line-height: 34px;
text-align: center;
font-size: 1.8rem;
color: #fff;
a {
display: block;
width: 100%;
height: 100%;
}
}
}
}
}
//评论删除
.comfirm {
width: 290px;
border: 2px solid #000;
height: 150px;
font-size: 1.4rem;
text-align: center;
@include box-sizing();
padding: 20px;
background: #fff;
.comfirm-head {
position: relative;
height: 13px;
a {
//@include retina-sprite($icons,login-close,false,true);
right: 10px;
text-indent: -8888px;
}
}
.comfirm-content {
margin-top: 15px;
}
.comfirm-foot {
margin-top: 15px;
position: relative;
overflow: hidden;
.comfirm-line {
//@include retina-sprite($line,comment-line,true,false);
top: 5px;
}
.comfirm-ctrl {
margin-top: 25px;
padding: 0 25px;
a {
color: #000;
}
.cancel {
float: left;
}
.ok {
float: right;
}
}
}
@charset "utf-8";
/*
* @description: comment css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/20
*/
//评论
.comment {
margin: 25px 15px 0 15px;
//公用
.userimg {
width: 40px;
height: 40px;
img {
width: 100%;
height: 100%;
display: block;
overflow: hidden;
@include border-radius(20px);
}
}
//态度
.statslist {
margin: 0 5px 30px 5px;
height: auto;
overflow: hidden;
> li {
float: left;
width: 25%;
height: 30px;
position: relative;
&:nth-last-of-type(1) {
&:before {
display: block;
content: '';
border-left: 1px solid #000;
width: 1px;
height: 100%;
position: absolute;
top: 0;
left: 10px;
}
}
@each $i, $isLike in (1: smile, 2: nothing, 3: bad, 4: comment) {
&:nth-of-type(#{$i}) {
> div {
@include retina-sprite($icons,#{$isLike},true,0);
z-index: 100;
}
&.current {
> div {
@include retina-sprite($icons,current_#{$isLike},true,0);
}
}
}
}
span {
display: block;
width: 31px;
height: 31px;
position: relative;
> i {
position: absolute;
left: 30px;
bottom: 3px;
color: #000;
display: none;
font-size: 1.2rem;
}
> img {
position: absolute;
left: 30px;
bottom: 3px;
display: block;
width: 16px;
}
}
#comment-num {
position: absolute;
left: 30px;
bottom: 3px;
width: auto;
height: auto;
font-size: 1.2rem;
> img {
position: absolute;
left: 0;
bottom: 0;
width: 16px;
}
}
}
}
//评论分页
/*.pager-content {
margin-top: 20px;
position: relative;
height: 25px;
a {
color: #000;
//@include hide-text();
}
.switch-prev {
float: left;
@include retina-sprite($icons,comment-prev);
}
.switch-next {
float: right;
@include retina-sprite($icons,comment-next);
}
}*/
//评论列表
ul.comments-list {
width: 100%;
li {
border-bottom: 1px solid #ccc;
padding-bottom: 18px;
margin-bottom: 10px;
.userimg {
position: relative;
float: left;
margin-right: 15px;
}
@each $comment-user in qq, weibo, yoho, fb {
.#{$comment-user} {
@include retina-sprite($icons,#{$comment-user},false,false);
position: absolute;
right: -5px;
bottom: -2px;
}
}
.userinfo {
overflow: hidden;
margin-left: 15px;
position: relative;
> h6 {
font-weight: bold;
font-size: 1.2rem;
}
> p {
font-size: 1.4rem;
line-height: 20px;
margin-top: 10px;
word-wrap: break-word;
width: 200px;
}
.delete-comment {
@include retina-sprite($icons,del,false,true);
right: 10px;
}
}
}
}
//查看更多
.view-more {
text-align: center;
font-size: 1.4rem;
margin-top: 20px;
display: block;
width: 100%;
font-weight: bold;
a {
color: #000;
}
}
//第三方登陆
/*.feedback-login {
margin-top: 10px;
font-size: 1.4rem;
color: #999;
height: 15px;
line-height: 15px;
> a {
margin: 0 5px;
img {
height: 15px;
}
}
}*/
//评论发布
.comment-textarea {
margin-top: 25px;
border: 1px solid #000;
> textarea {
width: 100%;
height: 54px;
max-width: 100%;
max-height: 100%;
border: none;
background: none;
outline: none;
font-size: 1.4rem;
color: #999;
@include box-sizing();
padding: 0 12px;
margin: 10px 0 20px 0;
}
.login-status {
border-top: 1px solid #000;
height: 54px;
position: relative;
.userimg {
position: absolute;
left: 8px;
top: 50%;
margin-top: -20px;
}
.userinfo, .anonymous {
position: absolute;
top: 21px;
left: 65px;
font-size: 1.4rem;
width: 150px;
color: #424242;
font-weight: bold;
a {
color: #000;
border-left: 1px solid #000;
padding: 0 10px;
margin-left: 10px;
}
}
.publish {
@include retina-sprite($icons,buy,false,true);
right: 0;
line-height: 34px;
text-align: center;
font-size: 1.8rem;
color: #fff;
a {
display: block;
width: 100%;
height: 100%;
}
}
}
}
}
//评论删除
.comfirm {
width: 290px;
border: 2px solid #000;
height: 150px;
font-size: 1.4rem;
text-align: center;
@include box-sizing();
padding: 20px;
background: #fff;
.comfirm-head {
position: relative;
height: 13px;
a {
//@include retina-sprite($icons,login-close,false,true);
right: 10px;
text-indent: -8888px;
}
}
.comfirm-content {
margin-top: 15px;
}
.comfirm-foot {
margin-top: 15px;
position: relative;
overflow: hidden;
.comfirm-line {
//@include retina-sprite($line,comment-line,true,false);
top: 5px;
}
.comfirm-ctrl {
margin-top: 25px;
padding: 0 25px;
a {
color: #000;
}
.cancel {
float: left;
}
.ok {
float: right;
}
}
}
}
\ No newline at end of file
... ...
/*
* @description: download css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
.home-download {
margin: 50px 15px 0 15px;
border: 2px dashed #dcdcdc;
padding-bottom: 30px;
@include border-radius(5px);
> div {
margin: 30px 10px 0 30px;
position: relative;
h2, h3, p {
position: absolute;
left: 95px;
@include ellipsis();
}
h2 {
top: 4px;
font-size: 1.7rem;
font-weight: bold;
}
h3 {
top: 23px;
font-size: 1.4rem;
font-weight: normal;
}
p {
top: 39px;
color: #666;
font-size: 0.8rem;
}
@for $i from 1 through 2 {
&:nth-of-type(#{$i}) {
> span.app-icon {
@include retina-sprite($icons, app-#{$i});
}
}
}
}
.down-btn {
width: 88px;
height: 24px;
line-height: 24px;
border: 1px solid #000;
@include border-radius(5px);
position: absolute;
left: 95px;
bottom: 2px;
color: #000;
font-size: 1.4rem;
font-weight: bold;
text-align: center;
@include hover-link();
}
/*
* @description: download css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/16
*/
.home-download {
margin: 50px 15px 0 15px;
border: 2px dashed #dcdcdc;
padding-bottom: 30px;
@include border-radius(5px);
> div {
margin: 30px 10px 0 30px;
position: relative;
h2, h3, p {
position: absolute;
left: 95px;
@include ellipsis();
}
h2 {
top: 4px;
font-size: 1.7rem;
font-weight: bold;
}
h3 {
top: 23px;
font-size: 1.4rem;
font-weight: normal;
}
p {
top: 39px;
color: #666;
font-size: 0.8rem;
}
@for $i from 1 through 2 {
&:nth-of-type(#{$i}) {
> span.app-icon {
@include retina-sprite($icons, app-#{$i});
}
}
}
}
.down-btn {
width: 88px;
height: 24px;
line-height: 24px;
border: 1px solid #000;
@include border-radius(5px);
position: absolute;
left: 95px;
bottom: 2px;
color: #000;
font-size: 1.4rem;
font-weight: bold;
text-align: center;
@include hover-link();
}
}
\ No newline at end of file
... ...
/*
* @description: follow-us css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/21
*/
.follow-us {
margin: 30px auto 0 auto;
//@include retina-sprite($line, comment-home);
border: 1px solid transparent;
> h2 {
font-size: 1.8rem;
margin-top: 18px;
text-align: center;
font-weight: bold;
}
> ul {
margin: 15px 25px 0 25px;
height: auto;
overflow: hidden;
li {
float: left;
margin-right: 32px;
&:nth-of-type(4) {
margin-right: 0;
}
@include hide-text();
a {
display: block;
width: 100%;
height: 100%;
}
}
@each $follow in show, sina, facebook, instagram {
.follow-#{$follow} {
@include retina-sprite($icons, #{$follow});
}
}
}
> .rss {
margin: 18px 25px 0 25px;
height: 21px;
border: 1px solid #000;
position: relative;
font-size: 1.4rem;
.rss-btn, input[type='text'] {
display: block;
height: 21px;
line-height: 21px;
position: absolute;
top: 0;
}
.rss-btn {
background: #000;
width: 65px;
text-align: center;
right: 0;
color: #fff;
font-weight: bold;
}
input[type='text'] {
text-indent: 10px;
display: block;
width: 170px;
left: 0;
background: none;
border: none;
outline: none;
}
}
}
@each $channel, $color in (home, #000),
(fashion, #9b90ff),
(beauty, #ffcaca),
(sport, #84e3ca),
(lifestyle, #ffca72),
(magazine, #7ecaff),
(video, #c9caca) {
##{$channel} {
.follow-us {
@include retina-sprite($line, comment-#{$channel});
h2 {
color: $color;
}
> .rss {
border: 1px solid $color;
.rss-btn {
background: $color;
}
}
}
}
/*
* @description: follow-us css
* @author: chenglong.wang@yoho.cn
* @date: 2015/4/21
*/
.follow-us {
margin: 30px auto 0 auto;
//@include retina-sprite($line, comment-home);
border: 1px solid transparent;
> h2 {
font-size: 1.8rem;
margin-top: 18px;
text-align: center;
font-weight: bold;
}
> ul {
margin: 15px 25px 0 25px;
height: auto;
overflow: hidden;
li {
float: left;
margin-right: 32px;
&:nth-of-type(4) {
margin-right: 0;
}
@include hide-text();
a {
display: block;
width: 100%;
height: 100%;
}
}
@each $follow in show, sina, facebook, instagram {
.follow-#{$follow} {
@include retina-sprite($icons, #{$follow});
}
}
}
> .rss {
margin: 18px 25px 0 25px;
height: 21px;
border: 1px solid #000;
position: relative;
font-size: 1.4rem;
.rss-btn, input[type='text'] {
display: block;
height: 21px;
line-height: 21px;
position: absolute;
top: 0;
}
.rss-btn {
background: #000;
width: 65px;
text-align: center;
right: 0;
color: #fff;
font-weight: bold;
}
input[type='text'] {
text-indent: 10px;
display: block;
width: 170px;
left: 0;
background: none;
border: none;
outline: none;
}
}
}
@each $channel, $color in (home, #000),
(fashion, #9b90ff),
(beauty, #ffcaca),
(sport, #84e3ca),
(lifestyle, #ffca72),
(magazine, #7ecaff),
(video, #c9caca) {
##{$channel} {
.follow-us {
@include retina-sprite($line, comment-#{$channel});
h2 {
color: $color;
}
> .rss {
border: 1px solid $color;
.rss-btn {
background: $color;
}
}
}
}
}
\ No newline at end of file
... ...