Quảng Cáo/ Thông Báo của lớp báo k32

Tổng số Khách

Thứ Năm, 24 tháng 5, 2012

Tiêu chuẩn của bản Word - thực tập, khóa luận văn tốt nghiệp

Nhiều vấn đề thắc mắc được nhiều bạn quan tâm đó là tiêu chuẩn của bài thực tập, luận văn, khóa luận tốt nghiệp. Tiêu chuẩn của văn bản Word được trình bày như thế nào? Khi làm 1 đề tài có quy củ như luận văn thì các bạn sẽ được thầy giáo hướng dẫn đưa ra tiêu chuẩn quy định trình bày, trong đó có sẵn quy định trình bày của Word.


- Ở đây mình đưa ra cái tiêu chuẩn chung nhất cho cá mẫu trình bày. Tuy nhiên ở những lĩnh vực khác nhau chúng ta cũng có những hình thức trình bày khác nhau (hình thức trình bày đó được hướng dẫn bởi giáo viên đưa đề tài)


·         Khóa luận phải được trình bày ngắn gọn, rõ ràng, mạch lạc, sạch sẽ, không được tẩy xóa, có đánh số trang, đánh số bảng biểu, hình vẽ, đồ thị. Nội dung phân thành các chương.
·         Font chữ Unicode: Times New Roman, kích thước(size) 13pt.
·         Dãn dòng (line spacing) đặt ở chế độ 1.5 lines.
·         Lề trên 3 cm, lề dưới 3.5 cm, lề trái 3.5 cm, lề phải 2 cm. Đánh số trang ở giữa bên dưới.
·         Các bảng biểu trình bày theo chiều ngang khổ giấy thì đầu bảng là lề trái của trang.
·         Số thứ tự của các chương, mục được đánh số bằng hệ thống số Ả-rập, không dùng số La mã. Các mục và tiểu mục được đánh số bằng các nhóm hai hoặc ba chữ số, cách nhau một dấu chấm: số thứ nhất chỉ số chương, chỉ số thứ hai chỉ số mục, số thứ ba chỉ số tiểu mục. Ví dụ:
Chương 3 …
                        3.1. …
                                    3.1.1. …
                                    3.1.2. …
                        3.2. …
·        Qui ước ghi tài liệu tham khảo:
o   Đánh số thứ tự tài liệu tham khảo theo thứ tự từ điển.
o   Bài đăng tạp chí: Tên tác giả, tên bài báo, tên tạp chí, tập, số, năm và các trang.
o   Ví dụ: Kumar S, Superconvergence of a ..., IMA Journal of Numerial Analysis (7), 1987, pp. 313 - 325.
o   Bài báo cáo hội nghị: Tên tác giả, Tên bài báo, Tên hội nghị, tên tuyển tập các báo cáo, nơi và thời gian tổ chức các trang. Ví dụ: B.K. Paradopop, Fuzzy sets and fuzzy realational structures as Chu spaces, Proceedings of the First International Workshop on ..., ThessalonikiGreeceOct. 16-20, 1998, pp….
o    Sách: Tên tác giả, tên sách, lần xuất bản, nhà xuất bản, nơi xuất bản, năm xuất bản. Ví dụ: A.N.Tikhonov, Solutions of Ill-Posed Problems, Willey, NewYork, 1997.

Thứ Sáu, 18 tháng 5, 2012

Các thủ thuật lập trình javascript với jquery

Tạo nhiều filter trên cùng một dòng:

//a filter allows you to reduce the set of matched elements //to those that match a given selector. In this case the query //removes anything which doesn't (:not) have (:has) a child with //class "selected" (.selected) .filter(":not(:has(.selected))")

Reuse Your Element Searches

var allItems = $("div.item"); var keepList = $("div#container1 div.item"); //Now you can keep working with those jQuery objects. For example, //trim down the "keep list" based on checkboxes whose names //correspond to <div>class names: $(formToLookAt + " input:checked").each(function() { keepList = keepList.filter("." + $(this).attr("name")); });</div>

Kiểm tra nếu có element hoặc class với lệnh has():

//jQuery 1.4.* includes support for the has method. This method will find //if a an element contains a certain other element class or whatever it is //you are looking for and do anything you want to them. $("input").has(".email").addClass("email_icon");

Đổi CSS với jquery:

//Look for the media-type you wish to switch then set the href to your new style sheet $('link[media='screen']').attr('href', 'Alternative.css');

Limit the Scope of Selection (For Optimization):

//Where possible, pre-fix your class names with a tag name //so that jQuery doesn't have to spend more time searching //for the element you're after. Also remember that anything //you can do to be more specific about where the element is //on your page will cut down on execution/search times var in_stock = $('#shopping_cart_items input.is_in_stock'); <ul id="shopping_cart_items"> <li> <input value="Item-X" name="item" class="is_in_stock" type="radio"> Item X</li> <li> <input value="Item-Y" name="item" class="3-5_days" type="radio"> Item Y</li> <li> <input value="Item-Z" name="item" class="unknown" type="radio"> Item Z</li> </ul>

Correctly Use ToggleClass:

//Toggle class allows you to add or remove a class //from an element depending on the presence of that //class. Where some developers would use: a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton'); //toggleClass allows you to easily do this using a.toggleClass('blueButton');

Thiết lập các hàm dành riêng cho IE:

if ($.browser.msie) { // Internet Explorer is a sadist. }

Thay thế một element với Jquery:

$('#thatdiv').replaceWith('fnuh');

Kiểm tra một element rỗng hay không:

if ($('#keks').html()) { //Nothing found ;}

Find out the index of an element in an unordered set

$("ul > li").click(function () { var index = $(this).prevAll().length; });

Bind a function to an event:

$('#foo').bind('click', function() { alert('User clicked on "foo."'); });

Append or add HTML to an element:

$('#lal').append('sometext');

Use an object literal to define properties when creating an element

var e = $("", { href: "#", class: "a-class another-class", title: "..." });

Filter using multiple-attributes

//This precision-based approached can be useful when you use //lots of similar input elements which have different types var elements = $('#someid input[type=sometype][value=somevalue]').get();

Preload images with jQuery:

jQuery.preloadImages = function() { for(var i = 0; i').attr('src', arguments[i]); } }; // Usage $.preloadImages('image1.gif', '/path/to/image2.png', 'some/image3.jpg');

Set an event handler for any element that matches a selector:

$('button.someClass').live('click', someFunction); //Note that in jQuery 1.4.2, the delegate and undelegate options have been //introduced to replace live as they offer better support for context //For example, in terms of a table where before you would use.. // .live() $("table").each(function(){ $("td", this).live("hover", function(){ $(this).toggleClass("hover"); }); }); //Now use.. $("table").delegate("td", "hover", function(){ $(this).toggleClass("hover"); });

Find an option element that’s been selected:

$('#someElement').find('option:selected');

Hide an element that contains text of a certain value:

$("p.value:contains('thetextvalue')").hide();

AutoScroll to a section of your page:

jQuery.fn.autoscroll = function(selector) { $('html,body').animate( {scrollTop: $(selector).offset().top}, 500 ); } //Then to scroll to the class/area you wish to get to like this: $('.area_name').autoscroll();

Detect Any Browser:

//Detect Safari (if( $.browser.safari)), //Detect IE6 and over (if ($.browser.msie && $.browser.version > 6 )), //Detect IE6 and below (if ($.browser.msie && $.browser.version <= 6 )), //Detect FireFox 2 and above (if ($.browser.mozilla && $.browser.version >= '1.8' ))

Replace a word in a string:

var el = $('#id'); el.html(el.html().replace(/word/ig, ''));

Disable right-click contextual menu :

$(document).bind('contextmenu',function(e){ return false; });

Define a Custom Selector

$.expr[':'].mycustomselector = function(element, index, meta, stack){ // element- is a DOM element // index - the current loop index in stack // meta - meta data about your selector // stack - stack of all elements to loop // Return true to include current element // Return false to explude current element }; // Custom Selector usage: $('.someClasses:test').doSomething();

Check if an element exists

if ($('#someDiv').length) {//hooray!!! it exists...}

Detect Both Right & Left Mouse-clicks with jQuery:

$("#someelement").live('click', function(e) { if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) { alert("Left Mouse Button Clicked"); } else if(e.button == 2) alert("Right Mouse Button Clicked"); });

Show or Erase a Default Value In An Input Field:

//This snippet will show you how to keep a default value //in a text input field for when a user hasn't entered in //a value to replace it swap_val = []; $(".swap").each(function(i){ swap_val[i] = $(this).val(); $(this).focusin(function(){ if ($(this).val() == swap_val[i]) { $(this).val(""); } }).focusout(function(){ if ($.trim($(this).val()) == "") { $(this).val(swap_val[i]); } }); });

Automatically Hide or Close Elements After An Amount Of Time (supports 1.4):

//Here's how we used to do it in 1.3.2 using setTimeout setTimeout(function() { $('.mydiv').hide('blind', {}, 500) }, 5000); //And here's how you can do it with 1.4 using the delay() feature (this is a lot like sleep) $(".mydiv").delay(5000).hide('blind', {}, 500);

Add Dynamically Created Elements to the DOM:

var newDiv = $(''); newDiv.attr('id','myNewDiv').appendTo('body');

Limit The Number Of Characters in a "Text-Area" field:

jQuery.fn.maxLength = function(max){ this.each(function(){ var type = this.tagName.toLowerCase(); var inputType = this.type? this.type.toLowerCase() : null; if(type == "input" && inputType == "text" || inputType == "password"){ //Apply the standard maxLength this.maxLength = max; } else if(type == "textarea"){ this.onkeypress = function(e){ var ob = e || event; var keyCode = ob.keyCode; var hasSelection = document.selection? document.selection.createRange().text.length > 0 : this.selectionStart != this.selectionEnd; return !(this.value.length >= max && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) && !ob.ctrlKey && !ob.altKey && !hasSelection); }; this.onkeyup = function(){ if(this.value.length > max){ this.value = this.value.substring(0,max); } }; } }); }; //Usage: $('#mytextarea').maxLength(500);

Create a basic test for a function:

//Separate tests into modules. module("Module B"); test("some other test", function() { //Specify how many assertions are expected to run within a test. expect(2); //A comparison assertion, equivalent to JUnit's assertEquals. equals( true, false, "failing test" ); equals( true, true, "passing test" ); });

Clone an element in jQuery:

var cloned = $('#somediv').clone();

Test if an element is visible in jQuery:

if($(element).is(':visible') == 'true') { //The element is Visible }

Center an element on screen:

jQuery.fn.center = function () { this.css('position','absolute'); this.css('top', ( $(window).height() - this.height() ) / +$(window).scrollTop() + 'px'); this.css('left', ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + 'px');return this;} //Use the above function as: $(element).center();

Put the values of all the elements of a particular name into an array:

var arrInputValues = new Array(); $("input[name='table\\[\\]']").each(function(){ arrInputValues.push($(this).val()); });

Strip HTML From Your Element

(function($) { $.fn.stripHtml = function() { var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi; this.each(function() { $(this).html( $(this).html().replace(regexp,”") ); }); return $(this); } })(jQuery); //usage: $('p').stripHtml();

Get a parent element using closest:

$('#searchBox').closest('div');

Log jQuery events using Firebug and Firefox:

// Allows chainable logging // Usage: $('#someDiv').hide().log('div hidden').addClass('someClass'); jQuery.log = jQuery.fn.log = function (msg) { if (console){ console.log("%s: %o", msg, this); } return this; };

Force links to open in a pop-up window:

jQuery('a.popup').live('click', function(){ newwindow=window.open($(this).attr('href'),'','height=200,width=150'); if (window.focus) {newwindow.focus()} return false; });

Force links to open in a new tab:

jQuery('a.newTab').live('click', function(){ newwindow=window.open($(this).href); jQuery(this).target = "_blank"; return false; });

Select siblings in jQuery using .siblings()

// Rather than doing this $('#nav li').click(function(){ $('#nav li').removeClass('active'); $(this).addClass('active'); }); // Do this instead $('#nav li').click(function(){ $(this).addClass('active') .siblings().removeClass('active'); });

Toggle All the checkboxes on a page:

var tog = false; // or true if they are checked on load $('a').click(function() { $("input[type=checkbox]").attr("checked",!tog); tog = !tog; });

Filter down a list of elements based on some input text:

//If the value of the element matches that of the entered text //it will be returned $('.someClass').filter(function() { return $(this).attr('value') == $('input#someId').val() ; })

Get mouse cursor X and Y

$(document).mousemove(function(e){ $(document).ready(function() { $().mousemove(function(e){ $("#XY").html("X Axis : " + e.pageX + " | Y Axis " + e.pageY); }); });

Make an entire List Element (LI) clickable

$("ul li").click(function(){ window.location=$(this).find("a").attr("href"); return false; }); <ul> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li><a href="#">Link 4</a></li> </ul>

Parse XML with jQuery (Basic example):

function parseXml(xml) { //find every Tutorial and print the author $(xml).find("Tutorial").each(function() { $("#output").append($(this).attr("author") + ""); }); }

Check if an image has been fully loaded:

$('#theImage').attr('src', 'image.jpg').load(function() { alert('This Image Has Been Loaded'); });

How to namespace events using jQuery:

//Events can be namespaced like this $('input').bind('blur.validation', function(e){ // ... }); //The data method also accept namespaces $('input').data('validation.isValid', true);

Check if Cookies Are Enabled Or Not:

var dt = new Date(); dt.setSeconds(dt.getSeconds() + 60); document.cookie = "cookietest=1; expires=" + dt.toGMTString(); var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1; if(!cookiesEnabled) { //cookies have not been enabled }

How to Expire A Cookie:

var date = new Date(); date.setTime(date.getTime() + (x * 60 * 1000)); $.cookie('example', 'foo', { expires: date });

Replace any URL on your page with a clickable link

$.fn.replaceUrl = function() { var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; this.each(function() { $(this).html( $(this).html().replace(regexp,'<a href="$1">$1</a>‘) ); }); return $(this); } //usage $('p').replaceUrl();

Thứ Ba, 15 tháng 5, 2012

Tạo Gallery (slider) trình chiếu ảnh cho blogger

Blog của bạn sẽ chuyên nghiệp hơn nếu có một wiget trình chiếu ảnh để giới thiệu với bạn bè. Slider hôm nay Viettin365 giới thiệu sử dụng javarscip với hiệu ứng mượt tù thư viện Jquery, được phát triển bởi dynamic drive. Viettin365 đã convert để có thể áp dụng vào blog với một số tùy chỉnh mới cho các bạn.

=>Thêm vào blogspot

1- Đăng nhập vào blog
2- Chọn Bố cục
3- Tại một tiện ích HTML/Javascipt và dán code dưới vào.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<style type="text/css">
/*Make sure your page contains a valid doctype at the top*/
#simplegallery1{ //CSS for Simple Gallery Example 1
position: relative; /*keep this intact*/
visibility: hidden; /*keep this intact*/
border: 1px solid #666;
}
#simplegallery1 .gallerydesctext{ //CSS for description DIV of Example 1 (if defined)
text-align: left;
padding: 2px 5px;
font: 10px normal verdana, arial;
}
</style>
<script type="text/javascript" >
var simpleGallery_navpanel={
    loadinggif: 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCU356WwL05jYI77hcvvnmmuOWe7VF5SPgi66zJu661TlDeSiQr_FH6eqPcoOxDOQ5p1V3s23Pf1ueedXMrydj3a99TtvUWnXSM9AV6xU66iA8RNMbjBPVhkPwfyV-QLQb98HPXBs6OQA/s1600/ajaxload-namkna-blogspot-com.png', //full path or URL to loading gif image
    panel: {height:'45px', opacity:0.5, paddingTop:'5px', fontStyle:'bold 11px Verdana'}, //customize nav panel container
    images: [ 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvjYL9ylUkc3vXy2P9Gw9MNhZPSJfvdVd5Lh0O2mhEYyl3gsyPXPL3jPdq95vJ7IBqQau0QQi8usabnDs0npAIkvgdgwlos2JSOQYcem2xSLH9xh-J3LWw8aDSwjUgAJGMIn-MMmRvCC8/s1600/left-namkna-blogspot-com.png', 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJKZjigXhgSoaADg_pzFR8MghUb1xxXiun0mnt5rIene51A8HrGaQCIK-c5OgxeWJ3h_G24tvi93i1SpUpOt9ivW1hK2TW-qUCLAbI6rVXRX38-_4ssWAJ4dOZh1OYD5uriAMUwaaZ2gA/s1600/play-namkna-blogspot-com.png', 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_2ap1AmyBvVQmz0L_H5w-XlVILao02xvv_NaFaBhtM5QvweFiOJbQo5k_abO-pSzKBesZ8jPJgDXYvSA8S0omaH7gfkvLa4N3ikdhBnxUVoe5g9yzNNil5OFRJ_lA231CPeD01Eu4N0I/s1600/right-namkna-blogspot-com.png', 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJrM_ggX_7lPzHBvkTwXIVWx3OxeZUKFQn5kkrT6JKAa0cuz5ckhsQ6BE9nIcBcFSdrlUXZ5277lGeTPimr1sSLIfztPtvdJS21cdszOpfbetSqM3PgDqnGWqxz70ZaBchrfUBOvnGwfs/s1600/pause-namklna-blogspot-com.png'], //nav panel images (in that order)
    imageSpacing: {offsetTop:[-4, 0, -4], spacing:10}, //top offset of left, play, and right images, PLUS spacing between the 3 images
    slideduration: 500 //duration of slide up animation to reveal panel
}
function simpleGallery(settingarg){
    this.setting=settingarg
    settingarg=null
    var setting=this.setting
    setting.panelheight=(parseInt(setting.navpanelheight)>5)? parseInt(setting.navpanelheight) : parseInt(simpleGallery_navpanel.panel.height)
    setting.fadeduration=parseInt(setting.fadeduration)
    setting.curimage=(setting.persist)? simpleGallery.routines.getCookie("gallery-"+setting.wrapperid) : 0
    setting.curimage=setting.curimage || 0 //account for curimage being null if cookie is empty
    setting.preloadfirst=(!jQuery.Deferred)? false : (typeof setting.preloadfirst!="undefined")? setting.preloadfirst : true //Boolean on whether to preload all images before showing gallery
    setting.ispaused=!setting.autoplay[0] //ispaused reflects current state of gallery, autoplay[0] indicates whether gallery is set to auto play
    setting.currentstep=0 //keep track of # of slides slideshow has gone through
    setting.totalsteps=setting.imagearray.length*setting.autoplay[2] //Total steps limit: # of images x # of user specified cycles
    setting.fglayer=0, setting.bglayer=1 //index of active and background layer (switches after each change of slide)
    setting.oninit=setting.oninit || function(){}
    setting.onslide=setting.onslide || function(){}
    var preloadimages=[], longestdesc=null, loadedimages=0
    var dfd = (setting.preloadfirst)? jQuery.Deferred() : {resolve:function(){}, done:function(f){f()}} //create real deferred object unless preloadfirst setting is false or browser doesn't support it
    setting.longestdesc="" //get longest description of all slides. If no desciptions defined, variable contains ""
    setting.$loadinggif=(function(){ //preload and ref ajax loading gif
        var loadgif=new Image()
        loadgif.src=simpleGallery_navpanel.loadinggif
        return jQuery(loadgif).css({verticalAlign:'middle'}).wrap('<div style="position:absolute;text-align:center;width:100%;height:100%" />').parent()
    })()
    for (var i=0; i<setting.imagearray.length; i++){  //preload slideshow images
        preloadimages[i]=new Image()
        preloadimages[i].src=setting.imagearray[i][0]
        if (setting.imagearray[i][3] && setting.imagearray[i][3].length>setting.longestdesc.length)
            setting.longestdesc=setting.imagearray[i][3]
        jQuery(preloadimages[i]).bind('load error', function(){
            loadedimages++
            if (loadedimages==setting.imagearray.length){
                dfd.resolve() //indicate all images have been loaded
            }
        })
    }
    var slideshow=this
    jQuery(document).ready(function($){
        var setting=slideshow.setting
        setting.$wrapperdiv=$('#'+setting.wrapperid).css({position:'relative', visibility:'visible', background:'black', overflow:'hidden', width:setting.dimensions[0], height:setting.dimensions[1]}).empty() //main gallery DIV
        if (setting.$wrapperdiv.length==0){ //if no wrapper DIV found
            alert("Error: DIV with ID \""+setting.wrapperid+"\" not found on page.")
            return
        }
        setting.$gallerylayers=$('<div class="gallerylayer"></div><div class="gallerylayer"></div>') //two stacked DIVs to display the actual slide
            .css({position:'absolute', left:0, top:0})
            .appendTo(setting.$wrapperdiv)
        setting.$loadinggif.css({top:setting.dimensions[1]/2-30}).appendTo(setting.$wrapperdiv) //30 is assumed height of ajax loading gif
        setting.gallerylayers=setting.$gallerylayers.get() //cache stacked DIVs as DOM objects
        setting.navbuttons=simpleGallery.routines.addnavpanel(setting) //get 4 nav buttons DIVs as DOM objects
        if (setting.longestdesc!="") //if at least one slide contains a description (feature is enabled)
            setting.descdiv=simpleGallery.routines.adddescpanel(setting)
        $(setting.navbuttons).filter('img.navimages').css({opacity:0.8})
            .bind('mouseover mouseout', function(e){
                $(this).css({opacity:(e.type=="mouseover")? 1 : 0.8})
            })
            .bind('click', function(e){
                var keyword=e.target.title.toLowerCase()
                slideshow.navigate(keyword) //assign behavior to nav images
            })
        dfd.done(function(){ //execute when all images have loaded
            setting.$loadinggif.remove()
            setting.$wrapperdiv.bind('mouseenter', function(){slideshow.showhidenavpanel('show')})
            setting.$wrapperdiv.bind('mouseleave', function(){slideshow.showhidenavpanel('hide')})
            slideshow.showslide(setting.curimage) //show initial slide
            setting.oninit.call(slideshow) //trigger oninit() event
            $(window).bind('unload', function(){ //clean up and persist
                $(slideshow.setting.navbuttons).unbind()
                if (slideshow.setting.persist) //remember last shown image's index
                    simpleGallery.routines.setCookie("gallery-"+setting.wrapperid, setting.curimage)
                jQuery.each(slideshow.setting, function(k){
                    if (slideshow.setting[k] instanceof Array){
                        for (var i=0; i<slideshow.setting[k].length; i++){
                            if (slideshow.setting[k][i].tagName=="DIV") //catches 2 gallerylayer divs, gallerystatus div
                                slideshow.setting[k][i].innerHTML=null
                            slideshow.setting[k][i]=null
                        }
                    }
                    if (slideshow.setting[k].innerHTML) //catch gallerydesctext div
                        slideshow.setting[k].innerHTML=null
                    slideshow.setting[k]=null
                })
                slideshow=slideshow.setting=null
            })
        }) //end deferred code
    }) //end jQuery domload
}
simpleGallery.prototype={
    navigate:function(keyword){
        clearTimeout(this.setting.playtimer)
        this.setting.totalsteps=100000 //if any of the nav buttons are clicked on, set totalsteps limit to an "unreachable" number
        if (!isNaN(parseInt(keyword))){
            this.showslide(parseInt(keyword))
        }
        else if (/(prev)|(next)/i.test(keyword)){
            this.showslide(keyword.toLowerCase())
        }
        else{ //if play|pause button
            var slideshow=this
            var $playbutton=$(this.setting.navbuttons).eq(1)
            if (!this.setting.ispaused){ //if pause Gallery
                this.setting.autoplay[0]=false
                $playbutton.attr({title:'Play', src:simpleGallery_navpanel.images[1]})
            }
            else if (this.setting.ispaused){ //if play Gallery
                this.setting.autoplay[0]=true
                this.setting.playtimer=setTimeout(function(){slideshow.showslide('next')}, this.setting.autoplay[1])
                $playbutton.attr({title:'Pause', src:simpleGallery_navpanel.images[3]})
            }
            slideshow.setting.ispaused=!slideshow.setting.ispaused
        }
    },
    showslide:function(keyword){
        var slideshow=this
        var setting=slideshow.setting
        var totalimages=setting.imagearray.length
        var imgindex=(keyword=="next")? (setting.curimage<totalimages-1? setting.curimage+1 : 0)
            : (keyword=="prev")? (setting.curimage>0? setting.curimage-1 : totalimages-1)
            : Math.min(keyword, totalimages-1)
        setting.gallerylayers[setting.bglayer].innerHTML=simpleGallery.routines.getSlideHTML(setting.imagearray[imgindex])
        setting.$gallerylayers.eq(setting.bglayer).css({zIndex:1000, opacity:0}) //background layer becomes foreground
            .stop().css({opacity:0}).animate({opacity:1}, setting.fadeduration, function(){ //Callback function after fade animation is complete:
                clearTimeout(setting.playtimer)
                setting.gallerylayers[setting.bglayer].innerHTML=null  //empty bglayer (previously fglayer before setting.fglayer=setting.bglayer was set below)
                try{
                    setting.onslide.call(slideshow, setting.gallerylayers[setting.fglayer], setting.curimage)
                }catch(e){
                    alert("Simple Controls Gallery: An error has occured somwhere in your code attached to the \"onslide\" event: "+e)
                }
                setting.currentstep+=1
                if (setting.autoplay[0]){
                    if (setting.currentstep<=setting.totalsteps)
                        setting.playtimer=setTimeout(function(){slideshow.showslide('next')}, setting.autoplay[1])
                    else
                        slideshow.navigate("play/pause")
                }
            }) //end callback function
        setting.gallerylayers[setting.fglayer].style.zIndex=999 //foreground layer becomes background
        setting.fglayer=setting.bglayer
        setting.bglayer=(setting.bglayer==0)? 1 : 0
        setting.curimage=imgindex
        setting.navbuttons[3].innerHTML=(setting.curimage+1) + '/' + setting.imagearray.length
        if (setting.imagearray[imgindex][3]){ //if this slide contains a description
            setting.$descpanel.css({visibility:'visible'})
            setting.descdiv.innerHTML=setting.imagearray[imgindex][3]
        }
        else if (setting.longestdesc!=""){ //if at least one slide contains a description (feature is enabled)
            setting.descdiv.innerHTML=null
            setting.$descpanel.css({visibility:'hidden'})
        }
    },
    showhidenavpanel:function(state){
        var setting=this.setting
        var endpoint=(state=="show")? setting.dimensions[1]-setting.panelheight : this.setting.dimensions[1]
        setting.$navpanel.stop().animate({top:endpoint}, simpleGallery_navpanel.slideduration)
        if (setting.longestdesc!="") //if at least one slide contains a description (feature is enabled)
            this.showhidedescpanel(state)
    },
    showhidedescpanel:function(state){
        var setting=this.setting
        var endpoint=(state=="show")? 0 : -setting.descpanelheight
        setting.$descpanel.stop().animate({top:endpoint}, simpleGallery_navpanel.slideduration)
    }
}
simpleGallery.routines={
    getSlideHTML:function(imgelement){
        var layerHTML=(imgelement[1])? '<a href="'+imgelement[1]+'" target="'+imgelement[2]+'">\n' : '' //hyperlink slide?
        layerHTML+='<img src="'+imgelement[0]+'" style="border-width:0" />'
        layerHTML+=(imgelement[1])? '</a>' : ''
        return layerHTML //return HTML for this layer
    },
    addnavpanel:function(setting){
        var interfaceHTML=''
        for (var i=0; i<3; i++){
            var imgstyle='position:relative; border:0; cursor:hand; cursor:pointer; top:'+simpleGallery_navpanel.imageSpacing.offsetTop[i]+'px; margin-right:'+(i!=2? simpleGallery_navpanel.imageSpacing.spacing+'px' : 0)
            var title=(i==0? 'Prev' : (i==1)? (setting.ispaused? 'Play' : 'Pause') : 'Next')
            var imagesrc=(i==1)? simpleGallery_navpanel.images[(setting.ispaused)? 1 : 3] : simpleGallery_navpanel.images[i]
            interfaceHTML+='<img class="navimages" title="' + title + '" src="'+ imagesrc +'" style="'+imgstyle+'" /> '
        }
        interfaceHTML+='<div class="gallerystatus" style="margin-top:1px">' + (setting.curimage+1) + '/' + setting.imagearray.length + '</div>'
        setting.$navpanel=$('<div class="navpanellayer"></div>')
            .css({position:'absolute', width:'100%', height:setting.panelheight, left:0, top:setting.dimensions[1], font:simpleGallery_navpanel.panel.fontStyle, zIndex:'1001'})
            .appendTo(setting.$wrapperdiv)
        $('<div class="navpanelbg"></div><div class="navpanelfg"></div>') //create inner nav panel DIVs
            .css({position:'absolute', left:0, top:0, width:'100%', height:'100%'})
            .eq(0).css({background:'black', opacity:simpleGallery_navpanel.panel.opacity}).end() //"navpanelbg" div
            .eq(1).css({paddingTop:simpleGallery_navpanel.panel.paddingTop, textAlign:'center', color:'white'}).html(interfaceHTML).end() //"navpanelfg" div
            .appendTo(setting.$navpanel)
        return setting.$navpanel.find('img.navimages, div.gallerystatus').get() //return 4 nav related images and DIVs as DOM objects
    },
    adddescpanel:function(setting){
        setting.$descpanel=$('<div class="gallerydesc"><div class="gallerydescbg"></div><div class="gallerydescfg"><div class="gallerydesctext"></div></div></div>')
            .css({position:'absolute', width:'100%', left:0, top:-1000, zIndex:'1001'})
            .find('div').css({position:'absolute', left:0, top:0, width:'100%'})
            .eq(0).css({background:'black', opacity:simpleGallery_navpanel.panel.opacity}).end() //"gallerydescbg" div
            .eq(1).css({color:'white'}).end() //"gallerydescfg" div
            .eq(2).html(setting.longestdesc).end().end()
            .appendTo(setting.$wrapperdiv)
        var $gallerydesctext=setting.$descpanel.find('div.gallerydesctext')
        setting.descpanelheight=$gallerydesctext.outerHeight()
        setting.$descpanel.css({top:-setting.descpanelheight, height:setting.descpanelheight}).find('div').css({height:'100%'})
        return setting.$descpanel.find('div.gallerydesctext').get(0) //return gallery description DIV as a DOM object
    },
    getCookie:function(Name){
        var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
        if (document.cookie.match(re)) //if cookie found
            return document.cookie.match(re)[0].split("=")[1] //return its value
        return null
    },
    setCookie:function(name, value){
        document.cookie = name+"=" + value + ";path=/"
    }
}
</script>
<script type="text/javascript">
var mygallery=new simpleGallery({
    wrapperid: "simplegallery1", //ID of main gallery container,
    dimensions: [300, 200], //width/height of gallery in pixels. Should reflect dimensions of the images exactly
    imagearray: [
        ["IMAGE LINK 1", "#", "_new", "DESCRIPTION"],
        ["IMAGE LINK 2", "#", "_new", "DESCRIPTION"],
        ["IMAGE LINK 3","#", "_new", "DESCRIPTION"],
        ["IMAGE LINK 4", "#", "_new", "DESCRIPTION"],
        ["IMAGE LINK 5", "#", "_new", "DESCRIPTION"]     ],
    autoplay: [true, 2000, 20], //[auto_play_boolean, delay_btw_slide_millisec, cycles_before_stopping_int]
    persist: false, //remember last viewed slide and recall within same session?
    fadeduration: 500, //transition duration (milliseconds)
    oninit:function(){ //event that fires when gallery has initialized/ ready to run
        //Keyword "this": references current gallery instance (ie: try this.navigate("play/pause"))
    },
    onslide:function(curslide, i){ //event that fires after each slide is shown
        //Keyword "this": references current gallery instance
        //curslide: returns DOM reference to current slide's DIV (ie: try alert(curslide.innerHTML)
        //i: integer reflecting current image within collection being shown (0=1st image, 1=2nd etc)
    }
})
</script>
<div id="simplegallery1"></div>

=> Tùy chỉnh slider!


- Thay IMAGE LINK 1,2,3,4 thành link ảnh của bạn.
- Thay dấu thăng màu đỏ (#) là liên kết tới bài viết hoặc trang web bạn muốn
- Thay DESCRIPTION là mô tả cho hình ảnh
- Để tăng hoặc giảm thời gian luân chuyển giữa 2 ảnh kế tiếp nhau bạn thay đổi giá trị2000.
- Để tắt chức năng tự động di chuyển qua các ảnh bạn sửa true thành false.
- Để thay đổi chiều rộng và chiều cao của khung slider bạn hãy thay đổi giá trịn chiều rộng300 và chiều cao 200.
- font: 10px là cỡ chũ của phần mô tả.

Đó là tất cả nhũng gì bạn cần phải làm.

Cập nhật mục lục tự động trong Word 2007, 2003, 2010, 2013

Làm thế nào để cập nhật mục lục tự động trong Word? Xin hướng dẫn cách cập nhật mục lục tự động trong Word 2007?
Những vấn đề xoay quanh đến việc cập nhật mục mục tự động khi đã được các bạn tạo ra. Ở bài viết này mình hướng dẫn các bạn cách updates mục lục trên Word 2007, các phiên bản office word 2010, 2013 thì các bạn làm hoàn toàn với thao tác tương tự. Với word 2003 thì các bạn tìm trên menu khó khăn hơn chút :)
Updates Table word 2007, 2010 2013, 2003
Sau khi đã tạo ra bảng mục lục cho tài liệu, có thể bạn phải duy trì nó. Bảng mục lục sẽ tự động cập nhật khi tài liệu được mở; và còn hay hơn nữa khi nó cũng tự cập nhật bất cứ khi nào bạn thêm tên chương hoặc tiêu đề mới vào và làm thay đổi số trang của tài liệu. Chỉ cần thực hiện 2 bước sau:
Bạn cập nhật mục lục bằng cách Click vào tab References và sau đó chọn Update Table trong nhóm Table of Contents. Khi cập nhật bảng mục lục bạn sẽ được hỏi rằng bạn muốn cập nhật toàn bộ mục lục hay chỉ muốn điều chỉnh số trang. Chọn điều chỉnh số trang nếu bạn thêm nội dung làm tăng số trang trong tài liệu mà không thêm tiêu đề nào mới, còn nếu bạn thêm hoặc thay đổi nội dung tiêu đề thì nên chọn Update entire table.
Bạn nên tránh việc sửa chữa trực tiếp vào bảng mục lục, vì nếu bạn đã từng cập nhật bảng mục lục thì bạn sẽ mất dữ liệu đã thay đổi. Để thay đổi nội dung trong bảng mục lục, thì hãy chỉnh sửa trên tài liệu, chứ không sửa trực tiếp trên bảng mục lục, sau đó click Update Table.

Thứ Ba, 8 tháng 5, 2012

Slider trưng bày sản phẩm theo nhãn cho blogspot

Slider hôm nay Viettin365 giới thiệu ,thích hợp với các blog chuyên về bán hàng qua mạng. Nó là một dạng trình chiếu sản phẩm khá đẹp được thiết kế bởi maskolis. Slider có khả năng tùy biến cao, tùy theo sở thích của mỗi người bạn có thể thay đỏi màu nền, số lượng ảnh thumbnail,  số ký tụ mô tả và tiêu đề,...

- Cấu tạo gồm các phần chính sau:

  + Phần 1: Hiển thị ảnh thumbnail lớn được lấy ngẫu nhiên trong bài viết. Nếu bài không có ảnh sẽ hiển thị ảnh no-image.jpeg
  + Phần 2: Hiển thị tiêu đề và mô tả cho ảnh thumbnail lớn.
  + Phần 3: Danh sách ảnh 7 thumbnai nhỏ được định bởi người dùng.

Các bạn có thể xem Demo bên dưới:

View demo


I- Tạo khung thêm tiện ích riêng dưới phần header cho tiện ích.

- Phần này mình hướng dẫn các thêm một khung add wiget trên bài đăng, bạn có thể bỏ qua.
1.1- Đăng nhập vào blog
1.2- Chọn Mẫu
1.3- Chọn chỉnh sủa HTML
1.4- Dán code sau trước thẻ ]]></b:skin>
/* Slide Content
----------------------------------------------- */
.slide-wrapper {padding:0 auto;margin:0 auto;width:auto;float: left;
word-wrap: break-word; overflow: hidden;}
.slide {color: #666666;line-height: 1.3em;}
.slide ul {list-style:none;margin:0 0 0;padding:0 0 0;}
.slide li {margin:0;padding-top:0;
padding-right:0;padding-bottom:.25em;
padding-left:0px;text-indent:0px;line-height:1.3em;}
.slide .widget {margin:0px 0px 6px 0px;}
1.5- Tìm thẻ:
<div id='main-wrapper'>
- Dán vào trước nó đoạn code bên dưới:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<div id='slide-wrapper'>
<b:section class='slide' id='slide' preferred='yes'/>
</div>
</b:if>
Với các mẫu simple của blog bạn có thể thêm vào trước đoạn mã <div class='main-outer'>
1.6- Save template lại.
- Quay trở lại phần bố cục (layuot) bạn sẽ thấy một khung thêm tiện ích mới xuất hiện.



II- Thêm code slider cho blogspot

2.1- Vào mẫu => Chọn Chỉnh sửa HTML
2.2- Dán code sau vào trước thẻ ]]></b:skin>
.shadow{width:950px; height:39px; background:#fff url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_5KIze_gY7yAchcANd4vkRDo08hJvg_FMrvnwzcDNTyZoz7Vz9XA0QXyauDZ5PMJZSmoHgUSdslQvCSYLwLPFm-4jlXzektzXf_Q1kSygjQoAMpz-EpK0ddL-Iq-BilOkswCGnRTV7vUj/s1600/shadow1-namkna-blogspot-com.png) no-repeat center;margin:0 auto}
#featured-slider{position:relative;overflow:hidden;width:950px;height:325px;background:#fcfcfc url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi73CYC6o6E5jRswGTMaCxmp-IB-K7qlp28OQcAvHd8x4KDianQNJvhre7J48fwURlm41hR0a0bN8nWQj2ET3pkCZE9jyr8g58rgmuSAEYB4uUaou3d4qRVXFPT67tM8ImBNxgjt7AZrXvn/s1600/slider-bg-namkna-blogspot-com-1.png) repeat-x top;margin:0 auto;padding:0 auto}
#featured-slider .contentdiv{visibility:hidden;position:absolute;left:20px;top:10px;z-index:1;width:305px}
#featured-slider .contentdiv img{background:#fff;padding:2px;border:1px solid #ccc;width:297px;height:297px;overflow:hidden}
#featured-slider .sliderPostPhoto{position:relative;height:305px;width:305px;overflow:hidden}
#featured-slider .sliderPostInfo{position:absolute;top:0;left:345px;color:#a1a1a1;background:url();height:190px;width:540px;padding:5px 0 0}
#featured-slider .sliderPostInfo p{color:#0a0a0a;line-height:1.6em;font-size:14px;padding-top:1px}
#featured-slider .featuredPostMeta a{color:#a1a1a1}
#featured-slider .order a {display:block; width:98px; height:40px; bottom:14px; left:0px;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5RP6UfbGn6M-d1fvkA5Vc6pYP4ZMlkkbww5B8JMGSwjTL2bnwNLakicI-Rqnt0soHSa57AXck5tnhHr4tbK_0WUIDEiOW2Cr0zbgN-Y7wEGcPj6JawIK6Jnw8wju1AIjlLj7R0xYI6wjx/s1600/order-namkna-blogspot-com.png) no-repeat 0 0; position:absolute; font-size:15px; line-height:13px; text-transform:uppercase; text-decoration:none; font-family: 'Open Sans', sans-serif; color:#fff; font-weight:700; padding:11px 0 0 6px;}
#featured-slider .order a:hover{ color:#515151;}
.featuredTitle{font:bold 24px Tahoma;color:#719429;line-height:1cm}
.featuredTitle a{color:#719429}
.featuredTitle a:hover{color:#0a0a0a}
#paginate-featured-slider{position:absolute;right:0;top:250px;z-index:1;width:595px;height:80px;overflow:hidden}
#paginate-featured-slider ul{width:595px;list-style:none}
#paginate-featured-slider .featured_thumb{float:left;margin-right:15px;width:65px;height:65px;padding:0}
#paginate-featured-slider .featured_thumb:hover{opacity:0.7}
2.3- Dán code bên dưới trước thẻ </head>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' type='text/javascript'/>
<script src='
http://dl.dropbox.com/u/66256041/slider/quangvietmkt.blogspot.com/slider-namkna.js' type='text/javascript'/>
<script type='text/javascript'>
//<![CDATA[
imgr = new Array();
imgr[0] = "
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-5Xv0zzywjFhXyaHf0RkXPt_684T-hv7lOTtIHs6xJQgSbZvfNTh26z7G5yUp1zbjP2ExRk7emcN_VL8G5EXlzJCVeGFXox2tIxDkNCehR43tULiVCZmfhyphenhyphenyePVroSJU-G2GtpUAZIPwn/s500/cooltext987481804.png";showRandomImg = true;

aBold = true;
summaryPost = 400;
summaryTitle = 25;

numposts2 = 7;


function removeHtmlTag(strx,chop){
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}

s = s.join("");
s = s.substring(0,chop-1);
return s;
}

function showrecentposts1(json) {
j = (showRandomImg) ? Math.floor((imgr.length+1)*Math.random()) : 0;
img = new Array();

for (var i = 0; i < numposts2 ; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var pcm;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}

for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
pcm = entry.link[k].title.split(" ")[0];
break;
}
}

if ("content" in entry) {
var postcontent = entry.content.$t;}
else
if ("summary" in entry) {
var postcontent = entry.summary.$t;}
else var postcontent = "";

postdate = entry.published.$t;

if(j>imgr.length-1) j=0;
img[i] = imgr[j];

s = postcontent ; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);

if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) img[i] = d;

//cmtext = (text != 'no') ? '<i><font color="'+acolor+'">('+pcm+' '+text+')</font></i>' : '';


var month = [1,2,3,4,5,6,7,8,9,10,11,12];
var month2 = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

var day = postdate.split("-")[2].substring(0,2);
var m = postdate.split("-")[1];
var y = postdate.split("-")[0];

for(var u2=0;u2<month.length;u2++){
if(parseInt(m)==month[u2]) {
m = month2[u2] ; break;
}
}

var daystr = day+ ' ' + m + ' ' + y ;

var trtd = '<div class="contentdiv"><div class="sliderPostPhoto"><a class="crop-foto" href="'+posturl+'"><img width="200" height="150" class="alignright" src="'+img[i]+'"/></a></div><div class="sliderPostInfo"><div class="featuredTitle"><a href="'+posturl+'">'+posttitle+'</a></div><span class="featuredPostMeta">'+daystr+' | <a href="'+posturl+'">'+pcm+' Comments</a></span><p>'+removeHtmlTag(postcontent,summaryPost)+'... <a href="'+posturl+'" class="meta-more">View Detail </a></p></div><p class="order"><a href="'+posturl+'">order!</a></p></div>';
document.write(trtd);

j++;
}

}

function showrecentposts2(json) {
j = (showRandomImg) ? Math.floor((imgr.length+1)*Math.random()) : 0;
img = new Array();

for (var i = 0; i < numposts2 ; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var pcm;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}

for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
pcm = entry.link[k].title.split(" ")[0];
break;
}
}

if ("content" in entry) {
var postcontent = entry.content.$t;}
else
if ("summary" in entry) {
var postcontent = entry.summary.$t;}
else var postcontent = "";

postdate = entry.published.$t;

if(j>imgr.length-1) j=0;
img[i] = imgr[j];

s = postcontent ; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);

if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) img[i] = d;

//cmtext = (text != 'no') ? '<i><font color="'+acolor+'">('+pcm+' '+text+')</font></i>' : '';


var month = [1,2,3,4,5,6,7,8,9,10,11,12];
var month2 = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

var day = postdate.split("-")[2].substring(0,2);
var m = postdate.split("-")[1];
var y = postdate.split("-")[0];

for(var u2=0;u2<month.length;u2++){
if(parseInt(m)==month[u2]) {
m = month2[u2] ; break;
}
}

var daystr = day+ ' ' + m + ' ' + y ;

var trtd = '<ul class="featured_thumb"><a rel="'+i+'" class="toc" href="#"><img width="65" height="65" title="our product" alt="our product" class="featured_thumb" src="'+img[i]+'"/></a></ul>';
document.write(trtd);

j++;
}

}
//]]>
</script>
Tùy chỉnh:
- Nếu trong template của bạn đã có file Jquery rồi thì có thể xóa file màu xanh đi.
- Bạn nên downlad file slider.js về và upload lên host riêng để dùng lâu dài nha.
- summaryPost = 400; là số ký tự mô tả cho bài viết hiển thị.
- summaryTitle = 25; là số ký tự của tiêu đề baiw viết hiển thị.
- numposts2 = 7; số hình ảnh thu nhỏ hiển thị.
showRandomImg = true; hiển thị hình ảnh ngẫu nhiên trong bài viết.
2.4- Thay thế đoạn code ở bước 1.5 thành đoạn code sau:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<div id='slide-wrapper'>
<b:section class='slide' id='slide' preferred='yes'>
<b:widget id='HTML82' locked='false' title='feature content slider' type='HTML'>
<b:includable id='main'>
<div id='featured-slider'>
<script>
document.write(&quot;&lt;script src=\&quot;/feeds/posts/default/-/<data:content/>?max-results=&quot;+numposts2+&quot;&amp;orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts1\&quot;&gt;&lt;\/script&gt;&quot;);
</script>
<div id='paginate-featured-slider'>
<ul>
<script>
document.write(&quot;&lt;script src=\&quot;/feeds/posts/default/-/<data:content/>?max-results=&quot;+numposts2+&quot;&amp;orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts2\&quot;&gt;&lt;\/script&gt;&quot;);
</script>
</ul>
</div>
</div>
<script type='text/javascript'>
featuredcontentslider.init({
id: &quot;featured-slider&quot;, //id of main slider DIV
contentsource: [&quot;inline&quot;, &quot;&quot;], //Valid values: [&quot;inline&quot;, &quot;&quot;] or [&quot;ajax&quot;, &quot;path_to_file&quot;]
toc: &quot;markup&quot;, //Valid values: &quot;#increment&quot;, &quot;markup&quot;, [&quot;label1&quot;, &quot;label2&quot;, etc]
nextprev: [&quot;&quot;, &quot;&quot;], //labels for &quot;prev&quot; and &quot;next&quot; links. Set to &quot;&quot; to hide.
revealtype: &quot;click&quot;, //Behavior of pagination links to reveal the slides: &quot;click&quot; or &quot;mouseover&quot;
enablefade: [true, 0.4], //[true/false, fadedegree]
autorotate: [true, 5000], //[true/false, pausetime]
onChange: function(previndex, curindex){ //event handler fired whenever script changes slide
//previndex holds index of last slide viewed b4 current (1=1st slide, 2nd=2nd etc)
//curindex holds index of currently shown slide (1=1st slide, 2nd=2nd etc)
}
})
</script>
</b:includable>
</b:widget>
</b:section>
</div>
</b:if>
<div class='shadow'/>
2-5- Lưu mẫu lại.
2.6- Quay lại phần bố cục bạn sẽ thấy dưới phần header có một khung với tên "feature content slider".


2.7- Bấm chuột vào chỉnh sửa (edit) và đánh tên laber muốn hiển thị trong slider vào phần nội dung:



28- Lưu tiện ích lại và xem kết quả nha.

Widget#2

Widget#5

Widget#4

primaryBottomSidebar

Footerpages

Trang

Bottom Navi

Được tạo bởi Blogger.

Người theo dõi

TIÊU ĐIỂM