Traditional Culture Encyclopedia - Photography and portraiture - Hailar travel guide Hailar travel guide must-see attractions
Hailar travel guide Hailar travel guide must-see attractions
Although Hailar is cold in winter, it is also a season of scenery in the north, and it is the best time to experience ice and snow activities and enjoy the snow scene in the grassland. Generally, it is from the middle and late period of 1 1 to the middle of February of the following year.
The small ticket is the first to push Hulunbeier grassland.
China's most complete prairie, the purest and richest grassland pasture, can enjoy the unique customs of nomadic people.
Bingler, Murray R.
Mozigele River, known as "the first meandering water in the world", is the most famous sightseeing pasture in Hulunbeier grassland, where many film and television programs, such as "Searching for the Dragon" and "Where is Dad", are filmed, and the grassland is full of twists and turns and endless spectacular scenes.
Golden tent sweat
Here is the hinterland of Hulunbeier grassland, "the sky is grey and wild, and the wind blows the grassland to see cattle and sheep." Many nomadic people have grown up here in history.
At that time, nomadic tribes ruled the world. This used to be the place where Genghis Khan, a generation of Tianjiao, camped. Now visitors can feel the strong nomadic tribal culture here.
Aoluguya Reindeer
In the depths of Daxing 'anling Mountains, there are a group of reindeer spirits, commonly known as "four elephants" or "deer". Reindeer are very docile. You can feed the reindeer and take photos with them. When you touch it, it seems that you are in a fairy tale world.
Hulun Lake
The endless Hulun Lake is beautiful, the lake area is vast, and the blue waves are like a crystal pearl embedded in the beautiful Hulunbeier grassland, which makes photographers and tourists stop.
Matters needing attention in Hulunbeier tourism
1. About the temperature difference, the tourist season of Hulunbeier grassland is 5- 1 1 month, and the midsummer in July and August is the peak season, but the temperature difference between morning and evening here is really great. Remember to bring long clothes and trousers.
2. With regard to sun protection, the weather in the grassland is unpredictable, and the weather is uncertain. Sunny days are good because good films will be made, but the sun is really good and the ultraviolet rays are very strong. All kinds of sunglasses, shawls and sun protection clothes are very necessary.
3. In terms of diet, Hulunbeier is located in the east of Inner Mongolia, geographically adjacent to Russia and Heilongjiang Province, so it is a local specialty, such as beef and mutton, hand-grabbed meat, roast leg of lamb, canned tea and so on. In the food culture; It may be salty for southerners, but it's delicious for northerners.
1。 & ampvoid 0! = = Parameter [1] & & amparguments[ 1],i=d.getInstance()。 getValue(); If (I & amp& ampI. Flags and signs; & ampi.flags.changeFclickToBeacon){! Function (t){var n, i = arguments.length & gt 1. & ampvoid 0! = = Parameter [1] & & arguments [1], r = new date (). getTime(); T & (t.rand = r+math.random ()), function (t){var e=! 1; Try t & navigator. & amp(e = navigator . send beacon(t))} catch(t){ } return e }(n =[I? v:p,g(t)]。 Add ("? ))||e(n)}(t,n); return}e([n? v:p,g(t)]。 Add ("? ))}(this.extend(this.env,{tag:"ps-js-error ",datetime:new Date()。 getTime(),message:t.message,stack:t . stack })},support:function(t,e){ if(" function " = = type of t){ e = t; try { e()} catch(t){ this . report(t)} } else { var n = t[e]; t[e]= function(){ for(var e = arguments . length,i=Array(e),r = 0; r0 } }); return}var t=window.document,e =[]; I . prototype . throttle _ time out = 100,i.prototype.POLL_INTERVAL=null,I . prototype . use _ MUTATION _ OBSERVER =! 0,I . prototype . observe = function(t){ if(! This. _ observationtargets . some(function(e){ return e . element = = t }){ if(! (t &1= = t.nodetype)) throws an error ("target must be an element"); This. _registerInstance(),this。 _ observationtargets.push ({element: t, entry:null}), this. _monitorIntersections(),this。 _checkForIntersections()}},I . prototype . unobserve = function(t){ this。 _observationTargets=this。 _observationTargets.filter (function (e){return e.element! =t}), this. _ observation targets . length | |(this。 _unmonitorIntersections(),this。 _unregisterInstance())},I . prototype . disconnect = function(){ this。 _observationTargets=[],this。 _unmonitorIntersections(),this。 _unregisterInstance()},I . prototype . takerecords = function(){ var t = this。 _ queuedentries . slice(); Return this. _queuedEntries=[],t},I . prototype . _ init thresholds = function(t){ var e = t | |[0]; return Array.isArray(e)||(e=[e]),e.sort()。 filter(function(t,e,n){if("number "! = type of t || isnan (t) || t 1) throw error ("threshold must be a number between 0 and1,including 0 and1"); Back to t! ==n[e- 1]})},I . prototype . _ parserotmargin = function(t){ var e =(t | | " 0px ")。 Split (/\s+/). map(function(t){var e=/^(-? \d*\。 ? \d+)(px|%)$/。 exec(t); If (! E) Throwing error ("rootMargin must be specified in pixels or percentage"); return { value:parse float(e[ 1]),unit:e[2]} }; Return e [1] = e [1] || e [0], e[2]=e[2]||e[0], e[3]=e[3]||e[ 1], e. This. _ monitoring interaction &&(this. _monitoringIntersections=! 0, this. Polling _ Interval? This. _ monitoring interval = setInterval(this。 _checkForIntersections,this。 POLL_INTERVAL):(r(window, "resize", this. _checkForIntersections,! 0), r(t, "scroll", this. _checkForIntersections,! 0), this. Use "Mutation Observer" in the _ Mutation _ Observer & amp& amp window. & This. _ DOM observer = new mutation observer(this。 _ checkforsections), this. _domObserver.observe(t,{attributes:! 0, sublist:! 0,characterData:! 0, subtree:! 0}))))},I . prototype . _ unmonitorIntersections = function(){ this。 _ monitoring interaction &&(this. _monitoringIntersections=! 1, clearInterval (this. _monitoringInterval), this. _monitoringInterval=null,o(window," resize ",this。 _checkForIntersections,! 0), o(t, "scroll", this. _checkForIntersections,! 0), this. _ domobserver &&(this. _domObserver.disconnect(),this。 _domObserver=null))},I . prototype . _ checkForIntersections = function(){ var t = this。 _rootIsInDom(),e=t? This. _ getroot rect():a(); This. _ observationtargets . foreach(function(I){ var r = I . element,o=s(r),a=this。 _rootContainsTarget(r), c=i.entry, u = t&&& this. _ computetargetandroot intersection(r,e),l = I . entry = new n({ time:window . performance & amp; & Performance & amp& ampperformance.now (), target:r, boundingclient: o, rootBounds:e, intersect rect: u}); c? T & A? This. _hasCrossedThreshold(c,l)& amp; & this. _ queuedentries . push(l):c & amp; & ampc.is interleaving & this. _ queueentries.push (l): this. _queuedEntries.push(l)},this),this。 _ queuedEntries.length & amp& amp this. _callback(this.takeRecords()、this)},I . prototype . _ computetargetandrootcurgence = function(e,n){if("none "! =window.getComputedStyle(e)。 display){for(var i=s(e),r=u(e),o=! 1; ! o; ){var a=null,c= 1==r.nodeType? window . getcomputedstyle(r):{ }; If("none"==c.display) returns; if(r==this.root||r==t? (o=! 0,a=n):r! = t.body & amp& ampr! = t.documentelement &&"visible"! Overflow &&(a = s (r)), a & amp& amp (i=function(t,e){var n=Math.max(t.top,e.top),i=Math.min(t.bottom,e.bottom),r=Math.max(t.left,e.left),o=Math.min(t.right,e.right),s=o-r,a = I-n; return s & gt= 0 & amp& ampa & gt= 0 & amp& amp{top:n,bottom:i,left:r,right:o,width:s,height:a}}(a,I)))break; r=u(r)}return i}},I . prototype . _ getRootRect = function(){ var e; if(this . root)e = s(this . root); else{var n=t.documentElement,I = t . body; e={top:0,left:0,right:n . client width | | I . client width,width:n . client width | | I . client width, Bottom: n.clientheight || i.clientheight, height: n.clientheight ||| i.clientheight}} returns this. _ expandrectbyrootremargin(e)},I . prototype . _ expandrectbyrootremargin = function(t){ var e = this。 _ rootmarginvalues . map(function(e,n){return"px"==e.unit? e.value:e.value*(n%2? t.width:t.height)/ 100}),n={top:t.top-e[0],right:t.right+e[ 1],bottom:t.bottom+e[2],left:t . left-e[3]}; return n.width=n.right-n.left,n.height=n.bottom-n.top,n},I . prototype . _ hasCrossedThreshold = function(t,e){ var n = t & amp; & ampt.isIntersecting? t . intersection ratio | | 0:- 1,i = e.isIntersecting? e . intersection ratio | | 0:- 1; If (n! = = I)for(var r = 0; Re-indexing of (this) & push (this)}, i. prototype. _ unregisterinstance = function () {var t = e.indexof (this); - 1! = t & amp.splice (t, 1)}, window. IntersectionObserver = i,window。 IntersectionObserverEntry = n} function n(t){this.time=t.time, this.target=t.target, this.rootBounds=t.rootBounds, this . bounding client rect = t . bounding client rect,this . intersect rect = t . intersect rect | | a(),this.isIntersecting =! ! t.intersectionRectvar e=this.boundingClientRect,n=e.width*e.height,i = this.intersectionRect,r = I . width * I . height; n? this . intersection ratio = Number((r/n))。 to fixed(4)):this . intersection ratio = this . is intersection? 1:0} function i(t, e){var n, i, r, o = e || {}; If ("function"! =typeof t) throws an error ("callback must be a function"); If (o.root & kloc-0/! =o.root.nodeType) throws an error ("root must be an element"); This. _checkForIntersections=(n=this。 _ check for intersections . bind(this),i=this。 THROTTLE_TIMEOUT, r=null, function () {r || (r = settimeout (function () {n (), r=null}, i))}, this. _callback=t, this. _observationTargets=[],this。 _queuedEntries=[], this. _rootMarginValues=this。 _ parserotmargin(o . root margin),this.thresholds=this。 _initThresholds(o.threshold),this.root=o.root||null,this.rootMargin=this。 _ root margin values . map(function(t){ return t . value+t . unit })。 join(" ")function r(t,e,n,I){ " function " = = type of t . addevent listener? t.addEventListener(e,n,i||! 1):" function " = = type of t . attach event & amp; & ampt.attachEvent("on"+e,n)}function o(t,e,n,I){ " function " = = type of t . removeeventlistener? t.removeEventListener(e,n,i||! 1):" function " = = type of t . detatchevent & amp; & ampt.detatchEvent("on"+e, n)} function s (t) {var e; try { e = t . getboundingclientrect()} catch(t){ } return e? (e.g., width and length; & height || (e = {top: e.top, right:e.right, bottom:e.bottom, left:e.left, width:e.right-e.left, height:e.bottom-e.top}), e): a (. Bottom:0, left:0, right:0, width:0, height:0}} Function c(t, e) {for (var n = e; n; ){if(n==t)return! 0; n=u(n)}return! 1} function u (t) {var e = t.parentnode; Returns e &11= = e Node Type & amp& ampe Host? Moderator: e & e.assigned slot? e . assigned slot . parent node:e } }(); Var R= "observer"; Function a () {function C(t){var e=t.container, n=t.url, I = t.paramsthis.opts = {container: e, url:n, params:void 0===i = i? {}:i},this . init()} C . prototype = { constructor:C,init:function(){var t=this,e = t . opts . container; t . observer = new intersection observer(t . observe CB . bind(t))、e & amp& amparray . prototype . slice . call(document . query selector all(e))。 forEach(function(e){ t . observer . observe(e)})},observe:function(t){ this . observer . observe(t)},observe CB:function(t){ var e = this; t . foreach(function(t){ if(t . is intersection){ var n = t . target; If (! n . getattribute(R)){ var I = e . combinedata(n); e.log(i),e.observer.unobserve(n),n.setAttribute(R, 1)}}},combineData:function(t){ var e = this . opts . params,n = { data:{ } }; for(var I in e)if(e . hasownproperty(I)){ var r = t . get attribute(e[I]); ""! = = r & amp& amp(n.data[i]=r)}return n},log:function(t){ this . n click(t)},n click:function(t){ var e = this . opts . URL; t . rand = this . addrand(); var n= " "。 concat(e,"? ).concat(this . encodesearchparams(t)); this.imgRequest(n,t)},imgRequest:function(t,e){try{var n=e.rand,i = new Imagewindow[-IMAGE "+n]= I, I . onload = I . on error = I . onabort = function(){ I . onload = I . on error = I . onabort = null,i=null,window[-IMAGE "+n]= A },i.src=t}catch(t){}},addRand:function(){ return math . random()。 toString( 16)。 slice(2,8)+Math.random()},encodeSearchParams:function(t){ var e =[]; For (var n in t) if (t.hasownproperty (n)) {var i = t [n]; " Object "= = type I & (I = JSON. Stringify (i)), e.push([n, encode component (i)]. join(" = ")} return e . join(" & amp; )}}; var x = { init:function(){ new C({ container:"[data-nvk]",url:"/udpl/exp ",params:{ exp:" data-nvk " } } }; T.PARAMS={}, t.init = function (e) {t. params = e; var n= " "+t . params . result class; _(function(){r.init(n,t.PARAMS.imTimeSign),x.init()},! 0),_(function(){O.init(),function(t,e){var n=Array.prototype.slice,I = { is listener:document . addevent listener,getOnEvent:function(t,e,n,I){ return function(r){ var r = r | | window . event; If (! 1===n.call(i||t,r,e,i))return r.preventDefault(),! 1}}}; I . addevent listener = I . is listener? Function (t, e, n, r, o){ returns e = e.replace (/on/i, ""), t.addeventlistener (e, i.getonevent (t, e, n, r),! ! O), t}: function (t, e, n, r){ return e = e.replace (/on/i, ""), t.attach event ("on"+e, i.get onevent (t, e, n, r)), t}; var r={getDom:function(t,n){ return arguments . length { { # jubao } }
- Previous article:Have Monkey Dad and Yanzi divorced?
- Next article:What kind of fireworks are widely used in night sky photography?
- Related articles
- Does p gear mean exposure mode?
- Real Barbie American comedy sweetheart spice girl?
- Who is the champion of China Good Voice in the fourth season?
- Speech by the host of the thank-you meeting
- Project manager resume template
- What is the problem that the video conference camera can't collect images?
- Why does documentary photography develop in different directions in America and Europe?
- Where is the vivo mobile phone projection assistant?
- Recommend several World War II movies
- Tour guide words of Qinghai tourist attractions