/* * 弹出窗口 */ (function($) { $.fn.show_dialog = function(options) { var that = $(this); var settings = $.extend({}, {width: 480, title: ''}, options); var init_dialog = function(title) { var _div = that; that.addClass("dialog_wrapper"); that.wrapInner(function(){ return '
'; }); that.wrapInner(function(){ return '
'; }); that.find('.dialog_body').prepend('

'+settings.title+'X

'); that.append('
'); $(".dialog_close_button").click(function(){ _div.hide(); }); that.draggable(); }; if(!$(this).hasClass("dialog_wrapper")) { init_dialog(settings.title); } settings.left = $(window).scrollLeft() + ($(window).width() - settings.width) / 2; settings.top = $(window).scrollTop() + ($(window).height() - $(this).height()) / 2; $(this).attr("style","display:none; z-index: 1100; position: absolute; width: "+settings.width+"px; left: "+settings.left+"px; top: "+settings.top+"px;"); $(this).show(); }; })(jQuery); /* * 文字计数 */ (function($) { $.fn.nc_text_count = function(options,submit_function) { var settings = $.extend({}, {max: 140}, options); return this.each(function() { $(this).after('
'); var message_item = $(this).next("[nc_type='commend_count']"); message_item.html($(this).val().length + '/' + settings.max); $(this).keyup({message_item:message_item}, commend_message_count); $(this).focusout({message_item:message_item}, commend_message_count); }); function commend_message_count(event) { message_item = event.data.message_item; var message_count = $(this).val().length; if(message_count <= settings.max) { if((settings.max - message_count) > 10) { message_item.attr("class", "counter"); message_item.html(message_count+"/"+settings.max); } else { message_item.attr("class", "counter warning"); message_item.html(message_count+"/"+settings.max); } } else { var over_count = message_count - settings.max; message_item.attr("class", "counter exceeded"); message_item.html("已超出"+parseInt(over_count, 10)+"个字"); } } }; })(jQuery); /* * 计数加减 */ (function($) { $.fn.nc_count = function(options) { var settings = $.extend({}, { type:'+',step:1}, options); var old_count = parseInt($(this).text(), 10); if(isNaN(old_count)) { old_count = 0; } if(old_count >= 999) { $(this).html('999+'); } else { var new_count = old_count; if(settings.type == '-') { new_count = old_count - settings.step; } else { new_count = old_count + settings.step; } if(new_count < 0) { new_count = 0; } $(this).text(new_count); } return this; }; })(jQuery); /* * 图片延迟加载 */ (function($) { $.fn.nc_lazyload_init = function() { this.each(function() { $(this).after($(this).val().replace(/src=/gi, 'data-src=')); }).remove(); }; })(jQuery); /* * 图片延迟加载 */ (function($) { $.fn.nc_lazyload = function() { var lazy_items = []; this.each(function() { if($(this).attr("data-src") !== undefined){ var lazy_item = { object: $(this), url: $(this).attr("data-src") }; lazy_items.push(lazy_item); } }); var load_img = function() { var window_height = $(window).height(); var scroll_top = $(window).scrollTop(); $.each(lazy_items, function(i, lazy_item) { if(lazy_item.object) { item_top = lazy_item.object.offset().top - scroll_top; if(item_top >= 0 && item_top < window_height) { if(lazy_item.url) { lazy_item.object.attr("src",lazy_item.url); } lazy_item.object = null; } } }); }; load_img(); $(window).bind("scroll", load_img); }; })(jQuery); /* * jQuery相册扩展 */ ;(function($) { $.fn.nc_gallery = function(options) { var defaults = { show_item_count: 1, btn_previous_page: '', btn_next_page: '', btn_previous_image: '', btn_next_image: '', animate: 100, start_item_count: 0, disable_css_class_name: 'disable', current_css_class_name: 'current', image_lazy_load: false, current_item_change_callback: function() {} }; var settings = $.extend({}, defaults, options); function gallery($gallery) { var $items = $gallery.children(); var items_length = $items.length; var current_item_count = 0; var max_item_count = items_length - 1; var min_item_count = 0; var item_change_step = 1; var current_page_start_count = 0; var max_page_start_count = items_length - settings.show_item_count; var min_page_start_count = 0; var $btn_previous_page = $(settings.btn_previous_page); var $btn_next_page = $(settings.btn_next_page); var $btn_previous_image = $(settings.btn_previous_image); var $btn_next_image = $(settings.btn_next_image); var page_enable = true; if(settings.show_item_count > items_length) { settings.show_item_count = items_length; page_enable = false; $btn_previous_page.addClass(settings.disable_css_class_name); $btn_next_page.addClass(settings.disable_css_class_name); image_lazy_load(0, items_length); if(items_length <= 1) { $btn_previous_image.addClass(settings.disable_css_class_name); $btn_next_image.addClass(settings.disable_css_class_name); } } $gallery.wrap('
'); $gallery.attr("style", 'width:' + items_length * settings.width +'px;'); $items.attr("style", 'float: left;'); change_current_item(settings.start_item_count); $items.each(function(i, item) { $(item).click(function() { change_current_item(i); }); }); $btn_previous_page.click(function() { change_page_start(current_page_start_count - settings.show_item_count); }); $btn_next_page.click(function() { change_page_start(current_page_start_count + settings.show_item_count); }); $btn_previous_image.click(function() { change_current_item(current_item_count - item_change_step); }); $btn_next_image.click(function() { change_current_item(current_item_count + item_change_step); }); function change_page_start(page_start_count) { if(!page_enable) { return false; } $btn_previous_page.removeClass(settings.disable_css_class_name); $btn_next_page.removeClass(settings.disable_css_class_name); if(page_start_count <= min_page_start_count) { page_start_count = min_page_start_count; $btn_previous_page.addClass(settings.disable_css_class_name); } if(page_start_count >= max_page_start_count) { page_start_count = max_page_start_count; $btn_next_page.addClass(settings.disable_css_class_name); } if(settings.image_lazy_load) { image_lazy_load(page_start_count, settings.show_item_count); } current_page_start_count = page_start_count; var margin_left = - page_start_count * settings.width; $gallery.animate({ marginLeft: margin_left }, settings.animate); } function change_current_item(next_item_count) { $btn_previous_image.removeClass(settings.disable_css_class_name); $btn_next_image.removeClass(settings.disable_css_class_name); if(next_item_count <= min_item_count) { next_item_count = min_item_count; $btn_previous_image.addClass(settings.disable_css_class_name); } if(next_item_count >= max_item_count) { next_item_count = max_item_count; $btn_next_image.addClass(settings.disable_css_class_name); } var $current_item = $($items.get(next_item_count)); $items.removeClass(settings.current_css_class_name); $current_item.addClass(settings.current_css_class_name); change_page_start(next_item_count - Math.floor(settings.show_item_count / 2)); current_item_count = next_item_count; settings.current_item_change_callback(current_item_count, $current_item); } function image_lazy_load(start, count) { for(var i = 0; i < count; i++) { var $current_img = $($items.get(start + i)).find('img'); $current_img.attr('src', $current_img.attr('data-src')); } } } return this.each(function() { gallery($(this)); }); }; })(jQuery);